목록전체 글 (161)
빠똥빠똥

#문제링크 : programmers.co.kr/learn/courses/30/lessons/42891 1. 블로그를 참고했습니다. 2. pair로 새로운 벡터v에 food_times의 시간값과 인덱스 값을 담는다. 3. v를 시간 값 순으로 먼저 정렬을 한다. 4. food_times의 요소의 갯수(사이클)를 size라 하겠다. v의 가장 작은 요소(현재 음식을 먹는데 걸리는 시간)부터 지난 음식을 먹는데 걸리는 시간(last_time)을 기준으로 (v[i] - last_time) * size 만큼 k에서 빼나간다. 이게 무슨 말이냐하면, 예를 들어, v벡터에 4 4 5 8 10 이 있고, k = 30 이라 할때, last_time의 초기값은 0으로 하고, v[i] = 4 이므로, ( 4 - 0 ) * ..

#문제링크 : www.acmicpc.net/problem/1655 1. 힙 배열을 둘로 나누어 관리한다. 앞배열과 뒷배열로 나눈다. 2. 모든 앞배열의 수는 모든 뒷배열의 수보다 작다. 단, 앞배열의 최댓값과 뒷배열의 최솟값은 같을 수 있다. 3. 전체 수열에서 중간값으로 될 수 있는 후보는, 앞배열의 최댓값 or 뒷배열의 최솟값이다. 4. 앞배열에서는 최댓값을 살펴봐야하므로 앞배열은 최대 힙으로 구성한다. 5. 뒷배열에서는 최솟값을 살펴봐야하므로 뒷배열은 최소 힙으로 구성한다. 6. 입력을 받고, 앞배열과 뒷배열에 저장할때, 앞배열과 뒷배열의 크기가 비슷해야한다. 더 정확하게 말하면 앞배열의 크기가 뒷배열의 크기와 같거나 뒷배열보다 하나 더 커야한다. (반대로, 뒷배열을 하나 더 크게 구현해도 상관없다..

#문제링크 : www.acmicpc.net/problem/11286 1. 최소 힙과 같은 방식으로 구현하되, 절댓값을 먼저 비교하고, 절댓값이 같다면 대소비교를 한다. 2. 절댓값이 같은데, 부모가 더 작거나 같으면 바로 루프를 종료해도 된다. 안그러면 무한루프를 돌게 된다.