rlagustlr677   5년 전

알고리즘 작동 원리는 가능한 모든수들을 완전탐색으로 N과 가장 가깝게 설정한 뒤 설정한 수와 N의차이+설정한 수의 길이로 하였고 |N-100|과 비교하여 최소값으로 하였습니다.. 9999일경우 10000으로 한뒤 -1하는게 더 효율적이기 때문에 완전탐색시 N의길이+1이 될때까지 검색을 하였습니다. 현재 질문탭에 나와있는 거의 모든 tc를 집어넣어봤지만 40퍼센트 정도에서 틀렸다고뜨네요ㅠ

djm03178   5년 전

다른 질문들에서 반례만 찾지 말고, 그 내용을 읽어보셨으면 좋겠습니다. https://www.acmicpc.net/board/... 와 매우 유사한 케이스입니다. 다만 질문자님의 코드에서는 앞에 0을 먼저 붙이고 탐색을 시작하는 경우들 때문에 목표 자릿수보다 한 자리 더 많은 수부터 계산이 되지 않을 뿐입니다. 근본적으로, "차이의 최솟값이 최적은 아닙니다."는 여기서도 유효합니다.

이 코드에서는 정답이 목표 자릿수보다 한 자리 더 적어야 하는 경우 문제가 됩니다.

1555

8

0 1 3 4 5 6 7 9

의 정답은 888을 누르고 위로 667번 올라간 670이 정답이지만, 888보다 2222를 먼저 탐색하기 때문에 2222를 누르고 아래로 667번 내려간 671을 출력합니다.

rlagustlr677   5년 전

헉 방금딱 그질문 보고서 맞아서 댓글달려고 왔는데 벌써 답변을 해주셨네요! 정말 감사합니다!!

71번째줄을 아래와 같이 바꾸니가 AC가 뜨네요! 감사합니다

ducl77   3년 전

와우 ㅠㅠㅠㅠㅠ 저도 도움 받았네요!!!

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