tjdwo1289   7년 전

우선 제가 접근한 방법은 큰수를 합쳐서 올라가게 되면 큰수가 계속 누적이 되기때문에 값이 크게 나온다는 관점에서 접근을 시작하였습니다.

따라서 가장 작은 두수를 더해서 올리면 될거라고 생각을 했고 먼저 입력된 숫자를 sort한 다음 가장 작은 두수를 합쳐주고 다시 바뀐 배열을 정렬을 한뒤 같은방식으로 가장작은 두수를 합치면서 원소가 1개가 남을때 까지 반복하도록 하였습니다.


그래서 제가 테스트 예제를 넣었을때는 모두 만족하는데 오류라고 뜨고 문제의 2번 케이스의 아웃풋이 864인데 이렇게 진행을 하게되면 826이 나옵니다. 제 알고리즘에 어디가 잘못된 것일까요 ? 제가 눈으로 확인해보았을때는 826이 나오는것이 정상으로 보이는데 어디가 잘못된걸까요 ?


연산과정 ->

1 3 3 4 4 5 5 5 14 17 21 21 32 35 98
result : 4
3 4 4 4 5 5 5 14 17 21 21 32 35 98
result : 11
4 4 5 5 5 7 14 17 21 21 32 35 98
result : 19
5 5 5 7 8 14 17 21 21 32 35 98
result : 29
5 7 8 10 14 17 21 21 32 35 98
result : 41
8 10 12 14 17 21 21 32 35 98
result : 59
12 14 17 18 21 21 32 35 98
result : 85
17 18 21 21 26 32 35 98
result : 120
21 21 26 32 35 35 98
result : 162
26 32 35 35 42 98
result : 220
35 35 42 58 98
result : 290
42 58 70 98
result : 390
70 98 100
result : 558
100 168
result : 826 (558+268)


tols91   7년 전

파일을 합칠때 인접한 파일만 합칠 수 있어요. 정렬을 해버리면 조건에 맞지않게되죠.

댓글을 작성하려면 로그인해야 합니다.