1110번 - 더하기 사이클
엊그제 질문을 올렸더니 어떤 분께서 답지를 주셔서(https://www.acmicpc.net/board/...) 직접 대입해가면서 확인해봤는데 두자리 수를 넣었을 땐 이상이 없고 한자리 수가 들어왔을 때가 정상적으로 출력되야 하는 값과 차이가 났습니다.
그런데 제가 직접 손으로 써 가면서 푼 거랑 출력되는 값이 같아서 제가 문제를 잘못 이해하고 짠 것 같아 질문 드립니다.
밑의 코드로 3을 넣었을 때 출력값이
0+3=3 3+3=6 3+6=9 6+9=15 9+5=14 5+4=9 4+9=13 9+3=12 3+2=5 2+5=7 5+7=12 7+2=9 2+9=11 9+1=10 1+0=1 0+1=1 1+1=2 1+2=3 18
문제 이해를 잘못 하신 듯 합니다.
3(03) -> 33 -> 36 -> 69 -> 95 -> 54 -> 49 -> 93 -> 32 -> 25 -> 57 -> ... 으로 진행되고,
맞은 소스를 이용하여 돌려 본 결과 60번만에 원래 수가 됩니다.
3 다음의 수는 이렇게 구해야 됩니다.
앞에 0을 붙여 두 자리 수로 만든다 -> 03
각 자리의 숫자를 더한다 -> 3
주어진 수의 가장 오른쪽 자리 수(3)와 앞에서 구한 합의 가장 오른쪽 자리 수(3)을 이어 붙이면 새로운 수(33)을 만들 수 있다.
한자리 수가 들어오면 구해야 하는 수를 n*10+n로 두고 풀어야 했던거군요. 두 분 모두 감사합니다! 내일 다시 풀어봐야겠습니다.
댓글을 작성하려면 로그인해야 합니다.
arcadia 5년 전
엊그제 질문을 올렸더니 어떤 분께서 답지를 주셔서(https://www.acmicpc.net/board/...) 직접 대입해가면서 확인해봤는데 두자리 수를 넣었을 땐 이상이 없고 한자리 수가 들어왔을 때가 정상적으로 출력되야 하는 값과 차이가 났습니다.
그런데 제가 직접 손으로 써 가면서 푼 거랑 출력되는 값이 같아서 제가 문제를 잘못 이해하고 짠 것 같아 질문 드립니다.
밑의 코드로 3을 넣었을 때 출력값이
이렇게 나오는데, 문제에서 "먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다." 라고 해서 03으로 놓고 풀었는데 이렇게 놓고 푸는 것이 아니라 다르게 놓고 풀어야 하나요?