arcadia   5년 전

엊그제 질문을 올렸더니 어떤 분께서 답지를 주셔서(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

이렇게 나오는데, 문제에서 "먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다." 라고 해서 03으로 놓고 풀었는데 이렇게 놓고 푸는 것이 아니라 다르게 놓고 풀어야 하나요?

dyk777   5년 전

문제 이해를 잘못 하신 듯 합니다.

3(03) -> 33 -> 36 -> 69 -> 95 -> 54 -> 49 -> 93 -> 32 -> 25 -> 57 -> ... 으로 진행되고,

맞은 소스를 이용하여 돌려 본 결과 60번만에 원래 수가 됩니다.

djm03178   5년 전

3 다음의 수는 이렇게 구해야 됩니다.

앞에 0을 붙여 두 자리 수로 만든다 -> 03

각 자리의 숫자를 더한다 -> 3

주어진 수의 가장 오른쪽 자리 수(3)와 앞에서 구한 합의 가장 오른쪽 자리 수(3)을 이어 붙이면 새로운 수(33)을 만들 수 있다.

arcadia   5년 전

한자리 수가 들어오면 구해야 하는 수를 n*10+n로 두고 풀어야 했던거군요. 두 분 모두 감사합니다! 내일 다시 풀어봐야겠습니다.

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