seolminsik   2년 전

주된 접근 방식은,

1. 처음 숫자를 문자열로 받고나서, 여섯자리에 (50만까지 받을수 있으니까) 강제로 숫자를 오른쪽으로 치우치게 배열 (EX 1555 -> 001555가 되도록)

2. 만약 고장난 숫자(Banned)들에 해당하는 숫자 중에 가장 높은 차수의 숫자를 기준으로, [높은숫자 찾기에서는 : 나머지 숫자들을 전부 가능한 최소의 숫자로 배열 후에, 낮은숫자 찾기에서는 : 나머지 숫자들을 전부 가능한 최대의 숫자로 배열 후에] 가장 자릿수가 높았던 고장난 숫자를 조작하는 방식으로 숫자를 찾기

3. 드물게 발생하는 예외 사항들은 if문으로 처리

애초에 여섯자리의 배열로 출발했다는 것이 문제가 될 사항으로 꼽힐것 같긴 합니다만 그렇다고 아직까지 반례 경우를 찾지 못해서 어떤점에서 문제가 발생할 것 같은지 질문드립니다.

dbshin59   2년 전

반례입니다.

99

0

output: 2

answer: 1

seolminsik   2년 전

감사합니다 ! 113번째 줄에서 숫자를 아예 안받을 때의 예외케이스를 처리하려고 넣었던 조건문이 독이 되었었네요 ..

그리고 실험하면서 또 알게 된 점은, 반드시 고장난 숫자들이 오름차순으로 주어지지 않는다는 점이었습니다. 따라서 어떤 방식으로든 정렬을 해주고 출발하게 되니, 확실히 더 많은 테스트 케이스들을 통과시킬 수 있었습니다. 그런데 아직도 모든 테스트 케이스가 통과과 안되고 있다는게 조금 아쉽네요 .. ㅜㅜ 좀더 연구해서 꼭 맞혀보도록 하겠습니다 !

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