MY MEMO

[Week14] 철수의 7 세그먼트 숫자놀이 본문

ALGORITHM/문제해결기법

[Week14] 철수의 7 세그먼트 숫자놀이

l_j_yeon 2017. 6. 14. 02:26



각 세그먼트에 순서대로 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만 풀어봐서 서버에서는 돌려볼 수 없었지만

생각보다 빠르게 풀어서 기분이 좋다


Comments