MY MEMO
[Week14] 철수의 7 세그먼트 숫자놀이 본문
각 세그먼트에 순서대로 index를 붙여두고(차이를 확인하기 위하여) 정해두고 숫자A -> 숫자 B가 되려면 얼마나 차이가 있는지 미리 구해두었다
+) 그 때 사용했던 코드
이후 그 숫자들의 큰 순서대로 정렬하였다.
DP함수를 사용하였는데
차이는 최대 7까지 나기 때문에 j는 7로 두었다.
이후
현재의 값이 -1이면 그 전으로 바로 넘어가고
나머지가 0이하이면 continue
나머지가 0이면 정답이므로 number의 수를 바꿔준다
위의 모든 조건이 해당되지 않으면
그 다음 수로 넘어간다
맨위에는 number의 수보다 index가 넘지 못하게 했는데 가끔 넘어가는게 있기 때문이다
DP는 현재의 값이 나머지가 0인 정답이면 그때부터 number를 바꾸고 1을 return하여 정답임을 알린다
정답이 아니라면 0을 리턴하고 DP를 반복한다
number를 바꾸면서 내려오는 것은
만약 5자리의 숫자가 들어왔을때
앞의 3자리만 바뀌었다고 하더라도
굳이 뒤의 두자리를 따로 수정할 필요없이 바로 출력을 하면 정답이 된다
small_input.txt만 풀어봐서 서버에서는 돌려볼 수 없었지만
생각보다 빠르게 풀어서 기분이 좋다
'ALGORITHM > 문제해결기법' 카테고리의 다른 글
[Week14] 해저탐사선 (0) | 2017.06.14 |
---|---|
[문제해결기법] Ordered Tree 완성하기 (0) | 2017.05.22 |
[문제해결기법] 길동이의 여행 (0) | 2017.05.19 |
[문제해결기법] 절대반지를 건 사다리 게임 (0) | 2017.05.19 |
[문제해결기법] 곱셈게임 (0) | 2017.05.09 |
Comments