이번주에 푼 문제는 [프로그래머스 - 스택/큐 - 기능개발] 문제입니다.
한동안 골치를 썩였는데 문제를 생각하니 참 ....어리석었다는 생각이 듭니다.
애초에 알고리즘을 설계할 때부터 제가 잘못된 것을 몰라서 오래 걸렸네요.
(다른 사람들의 답에 또 감탄을 합니다..)
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42586
언뜻 보면 매우 간단한 문제지만 생각해야 될 부분이 2가지정도 있습니다.
1. 남은 시간 배열 만들기 : 저같은 경우에는 매우 어렵게 만들었습니다. 남은 양을 speed로 나눈 뒤 반올림을 했죠.
여기서 잘하시는 분들의 풀이를 보니 힌트를 얻은 부분은! -10 // 3은 -4라는 점입니다. 오랜만에 생각났습니다... 제 기억으로는 나머지는 무조건 양수가 되어야 하므로 -10 = 3 * -4(몫) + 2(나머지) 가 됐던 것 같습니다. 이를 활용하시면 더욱 쉽게 남은 시간 배열을 만들 수 있습니다.
2. 남은 시간 비교하기 : 처음 제가 문제를 풀지 못했던 이유는 배열의 각 요소를 다음 요소와(만) 비교하는 것을 계속 반복했기 때문이었습니다... 예를 들어, [50일, 25일, 3일, 24일] 이렇게 남은 시간을 구한 경우에는 다음과 같은 과정을 겪는다고 생각했습니다.
1) 50일 > 25일이므로 첫번째와 두번째 배포는 같이 이루어진다.
2) 25일 > 3일이므로 두번째와 세번째 배포는 같이 이루어진다.
3) 3일 > 24일이므로 앞의 3가지 배포는 이루어진다.
4) 24일 걸리는 배포가 혼자 마지막으로 이루어진다.
→ 답은 [3, 1] ! 이라고 생각했던 제가 바보였죠..
1) 50일 > 25일이므로 첫번째와 두번째 배포는 같이 이루어진다.
2) 50일 > 3일이므로 두번째와 세번째 배포는 같이 이루어진다.
3) 50일 > 24일 일이므로 4가지 배포는 모두 한번에 이루어진다.
→ 답은 [4] !입니다.
즉, 미루어진 프로그램 배포 중에 가장 긴 시간이 걸리는 것과 비교해야 하는 것을 망각하고 있었습니다.. 혹시나 막히시는 분이 계시다면 이 점을 생각하시고! 답은 보지 마시고 한 번 다시 풀어보세요. 이상 끝 -!
'Computer Science > 알고리즘' 카테고리의 다른 글
프로그래머스 풀이 - 코딩테스트 #스택/큐 #주식 가격 (0) | 2019.10.28 |
---|---|
프로그래머스 풀이 - 코딩테스트#스택/큐#다리를 지나는 트럭 (0) | 2019.10.28 |
프로그래머스 풀이 - 코딩테스트#스택/큐#탑 (0) | 2019.10.06 |
프로그래머스 풀이 - 코딩테스트#스택/큐#프린터 (0) | 2019.10.05 |
프로그래머스 풀이 - 코딩테스트#스택/큐#쇠막대기 (0) | 2019.09.25 |