본문 바로가기

반응형

분류 전체보기

(171)
2018.6.9 (토) 고등학교 친구들을 만났다. 어제 만나긴 했지만, 이런저런 사정으로 지금 일기를 쓰겠다! 어제는 오랜만에 고등학교 친구들을 만났다. 고등학교는 같이 나왔지만, 친구들은 하는일이 굉장히 다양했다. 이미 취업해서 집을 가지고 있는 친구, 휴학 중인 친구, 대학원을 준비하는 친구 등.. 서로 다른 일을 하고 있어서인지 대화를 할 때 더 재밌었던 것 같다. 그리고 역시 내가 게임을 좋아할 때 친하게 지내던 친구들이라 그런지 만나서 점심을 먹은 뒤에는 피시방으로 갔다. 요즘엔 게임을 잘 안하지만, 오랜만에 해서 그래도 재밌었다. 배틀그라운드를 할 때 킬 수가 가장 낮은 사람이 음료수를 사는 내기를 했다. 정말 아쉽지만, 1 킬도 하지 못한 내가 음료수를 사게 되었다. 음료수가 참으로 맛있다고 하는데.. 정말 얄미웠다. 이제 좀있으면 여름이기..
2018. 6. 8 (금) 오늘의 일기 요즘에 등산을 하고 있는데 나의 신발이 매우매우매우 낡았다는 것을 어머니가 보셨다! 그래서 오늘 아침 급작스럽게 운동화러 가는 일정이 생겼다. 여차저차 하다보니~ 동생 운동화도 같이사고 저녁도 같이 먹기로했다. 신발을 사러가면서 장어구이? 족발? 보쌈? 등등 많은 얘기가 오갔고, 결국 족발을 먹기로했다!! 최근에도 족발을 먹었지만... 개인적으로 족발을 매우매우 좋아하기 때문에 상관없었다! 왜냐하면 족발에는 아주 쫄깃쫄깃한 껍데기가 더덕더덕 붙어있기 때문이다! 진짜 쫄깃한 식감은 정말 너무너무 좋다! 심지어 비빔국수까지 무려 '대'자로 시켜주셨다! 너무 배가 불러서 결국 비빔국수는 얼마 입에 대지 못했던것이 아쉬운 점이었다. 오랜만에 먹을거로 정말 행복한 하루였다. 정말... 너무 맛있게 먹어서 사진찍는..
[정렬] 병합 정렬 ( Merge Sort) 오늘은 정렬 방법 중에 하나인 '병합 정렬'에 대해서 알아봅시다! 분할 정복에 대해 간단히 설명하면, 하나의 큰 덩어리를 작게 분할하여 해결하고, 이 작은 덩어리들을 묶어서 또 다시 해결을 하다보면 최종적으로 자신이 원하는 답을 찾는다는 것입니다. 어디서 많이 들었던 소리이지 않습니까?! 바로 재귀 함수에서 나왔던 개념입니다!따라서, 분할 정복은 재귀를 통해서 해결하는 경우가 많습니다. 어쨌든, 이 병합 정렬도 분할 정복을 통해 정렬하는 방법입니다. 방법은 간단합니다! 데이터를 한 조각이 남을 때까지 계속해서 쪼개고, 쪼개고, 또 쪼갭니다.그리고 쪼개진 것들끼리 정렬을 하고, 이를 이용해서 만들어진 조금 큰 조각을 또 정렬을 하는 방법입니다! 그림으로 확인해봅시다! 그림에서 처럼 우선 데이터를 반 씩 쪼..
[완전탐색/부분집합] 비트를 이용하여 모든 부분집합을 구하자! 부분 집합이란 전체의 집합에서 하나의 원소를 '고른다 / 안 고른다' 두 가지의 경우에 대해 살펴보는 것이므로 2^n 가지의 경우가 나옵니다. 이는 비트를 이용하면 굉장히 쉽게 구할 수 있습니다! 왜냐하면 비트는 이진수이기 때문에, 하나의 자리수마다 고른다 (1) / 안 고른다(0)을 설정할 수 있기 때문입니다! 우선 코드를 보겠습니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 #include#include#include int arr[10]; void print(int bit){ int idx = 0; while (bit) { if (bit & 1) { printf("%d ", a..
[완전탐색/순열] 재귀 함수로 순열을 짜보자! (크기 순서로) 재귀함수를 통해 순열을 짜는 방법을 알아보겠습니다.우선 예제로 주어진 수가 1 2 3 4 5일 때 을 구해봅시다. 어떻게하면 순열을 구할 수 있을까요? 바로, 앞의 3 자리를 순열의 결과로 보는 것입니다.보통 결과를 앞에 3자리에 위치시키기 위해 크게 2가지 방법이 있습니다. 1. swap을 이용한 방법2. 오른쪽으로 한칸씩 원형 회전 시키는 방법 1번의 경우에는 순열을 구하는 순서가 상관이 없을 때 사용합니다.2번의 경우는 순열을 구하는 순서가 정해져 있는 경우입니다. (특히 크기 순서로) 1번을 예로 보겠습니다.1 2 3 4 5가 있을 때,맨 앞자리를 처음에는 1로 한다.그리고 다음 2번째 수를 2로 하고,3번째 수를 3으로 하면, 1 2 3 순열이 만들어집니다.이제 3과 4를 swap해서 1 2 4..
[완전탐색] 완전탐색에 대해 알아보자 완.전.탐.색! 말 그대로 무식하게 모든 경우를 다 보는 것입니다!컴퓨터의 가장 강한 이점인 '속도'를 극한으로 이용할 수 있는 방법입니다.보통 완전 탐색은 최적화 문제에서 많이 사용합니다.최적화 문제란, 여러가지 경우를 만들 수 있을 때, 가장 적합한 답의 경우를 구하는 문제를 말합니다.예를 들면, 마을 사이를 잇는 도로가 있고 도로마다 거리가 다를 때, A에서 B로 가는데 가장 짧은 도로의 길이를 구하는 문제가 있습니다.이와 같은 문제를 풀 때 완전탐색을 이용하면 A에서 B로 가는 모든 도로의 경우를 구한 뒤에 그 중 거리가 가장 짧은 값을 답으로 선정합니다.물론, 완전탐색을 이용해서 문제를 풀기 위해서는 문제의 조건에서 주어진 시간 내에 풀 수 있을지 잘 생각해보아야 합니다.완전탐색을 너무 많이하면..
동아리 선배를 만났다. 오늘은 동아리 선배를 만났다. 지난 하반기에 같이 패배의 쓴 맛을 본 뒤로, 이번 상반기에는 꼭 같이 합격하자는 다짐을 한 형이었다. 나는 결국 다시 한번 좌절을 겪었지만, 이 형은 독하게 해서 상반기에 취업에 성공하셨다. 다시 한 번 축하를 하면서 이번 하반기에는 무엇을 할 지 이야기를 했다. 얘기를 하면서 형은 나에게 이번엔 꼭 합격할 수 있을 거라고 하셨다. 지난주에도 대학교 동기들과 만났었는데, 좌절하지 말라는 소리와 꼭 합격할 것이라는 격려를 들었다. 상반기에서 떨어진 뒤에 자신감이 수직하락하는 것은 정말 어쩔수 없는 것 같다. 하지만, 이는 시간이 해결해 줄 것이다. 하반기에도 그랬으니까! 자신감이 계속 떨어지는 지금 시기에는 자신감을 친구들에게서 얻도록하자. 조금만 있으면 다시 자신감을 만들..
[알고스팟] CLOCKSYNC 링크 : https://algospot.com/judge/problem/read/CLOCKSYNC 문제 ID시간 제한메모리 제한제출 횟수정답 횟수 (비율)CLOCKSYNC10000ms65536kb68852724 (39%) 문제그림과 같이 4 x 4 개의 격자 형태로 배치된 16개의 시계가 있다. 이 시계들은 모두 12시, 3시, 6시, 혹은 9시를 가리키고 있다. 이 시계들이 모두 12시를 가리키도록 바꾸고 싶다.시계의 시간을 조작하는 유일한 방법은 모두 10개 있는 스위치들을 조작하는 것으로, 각 스위치들은 모두 적게는 3개에서 많게는 5개의 시계에 연결되어 있다. 한 스위치를 누를 때마다, 해당 스위치와 연결된 시계들의 시간은 3시간씩 앞으로 움직인다. 스위치들과 그들이 연결된 시계들의 목록은 다음과..

반응형