coding_jun   2년 전

목표 채널을 n번이라고 하면

1. 남아있는 버튼으로 누를 수 있는 n보다 작은 채널 중 가장 큰 채널 번호와 100과의 차이 + 그 채널 번호의 길이

2. 남아있는 버튼으로 누를 수 있는 n보다 큰 채널 중 가장 작은 채널 번호와 100과의 차이 + 그 채널 번호의 길이

3. n과 100의 차이

4. n번의 자릿수

이 4가지 중 가장 작은 값을 출력하도록 코드를 짰습니다.

mini는 남아있는 버튼으로 누를 수 있는 n보다 작은 채널 중 가장 큰 채널 번호를 출력하는 함수입니다.

  nt는 False가 되면 이미 만들어지는 숫자가 n보다 작아졌음을 의미합니다.

  nodab은 False가 되면 이미 자릿수가 작아져야만 n보다 작은 숫자를 만들 수 있음을 의미합니다.

  n이 k+1자리 숫자이면 남아있는 버튼의 최솟값이 10^(k-1)자리의 숫자보다 큰 지 작은 지를 확인하여 10^k 자리의 숫자를 결정하는 방식으로 코드를 구성했습니다.

maxi는 남아있는 버튼으로 누를 수 있는 n보다 큰 채널 중 가장 작은 채널 번호를 출력하는 함수입니다.

  mt는 False가 되면 이미 만들어지는 숫자가 n보다 커졌음을 의미합니다.

  n n이 k+1자리 숫자이면 남아있는 버튼의 최댓값이 10^(k-1)자리의 숫자보다 큰 지 작은 지를 확인하여 10^k 자리의 숫자를 결정하는 방식으로 코드를 구성했습니다.

게시판 정독해봤는데도 반례가 안 나와서 어디서 틀린건지 못 찾겠습니다.

고수분들 반례 찾아주시면 정말 감사하겠습니다.

ahmg1216   2년 전

애초에 출력값이 이상합니다 왜 세개를 다 출력하시죠

ahmg1216   2년 전

또한 구해야 할 최소는 100번으로 가는 최소가아닌 n으로 가는 최소이고 기본값이 100번입니다

coding_jun   2년 전

세 개 중 최솟값을 출력하도록 min으로 설정했습니다!

djm03178   2년 전

랜덤으로 찾은 반례입니다.

djm03178   2년 전

더 작은 반례입니다.

coding_jun   2년 전

아 감사합니다. mini에서 n보다 작은 숫자 중 만들 수 있는 최댓값 출력할 때 앞에 0이 붙어있었네요

ahmg1216   2년 전

죄송합니다 복붙하다 뭔가 잘못 되었나 보네요

coding_jun   2년 전

아니에요~

coding_jun   2년 전

이제는 ValueError가 뜨네요,,,ㅎㅎㅎ

ahmg1216   2년 전

35386

9

9 7 8 6 5 4 1 0 2

ahmg1216   2년 전

반례입니다

coding_jun   2년 전

감사합니다. 덕분에  런타임에러 해결해서 맞았네요.

min413   1년 전

9 7 8 6 5 4 1 0 2

이렇게 정렬 안 된 상태로 입력될 수 있다는 걸 알고 나서 해결했습니다.

진심으로 감사합니다!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

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