상세 컨텐츠

본문 제목

백준 문제풀이 코딩 '더하기 사이클'

전산직 코딩

by PublicOfficer_Dobby 2021. 12. 20. 17:59

본문

수학을 좋아하진 않지만 

넓디 넓은 수학의 세계에서 아기자기하면서 '올 ㅋ 신기한데?'

라는 생각이 절로드는 문제가 있어 도전했다.

 

이론 수학자였다면 결과를 증명하기 위해

엄밀한 연역과정을 펼쳤겠지만

모로가도 서울로만 가면 되는 코더로서는

결과가 그냥 '잘 저질러지기'만 하면 된다.

 

문제는 아래와 같다.

 

더하기 사이클 문제(출처: 백준)

 

26을 예로 들면

 

26 -> '2' , '6'로 쪼갠뒤 이 둘을 더한다.

쪼갠 둘을 더한다 : 2+6 = 8

위 방정식에서 '오른쪽 두개 수를 이어 붙인다 : 68

위 과정을 다시 반복한다 원래 숫자 '26'으로 돌아올 때 까지 

 

이 꽤나 이상한 과정을 반복하기만 했는데 원래숫자로 돌아온다...

무척 신기하다.

정말 그런지 문제가 요구하는 '반복횟수'만 볼게 아니라

그 과정도 주르륵 보고 싶었다.

 

매번 달라지는 숫자를 리스트 자료형에 넣어 결과를 보면 아래와 같다

 

초기 값 26을 입력후 실행

 

가장 하단의 실행결과를 보면

리스트 자료에 총 4개의 값이 저장되며 원래대로 돌아왔다.

 

즉 26은 4번만 연산하면 원래대로 돌아온다!

(코드는 위에 포함되어있다)

 

생각보다 적게 걸리는게 꽤나 신기했지만

시험삼해 '87'을 입력했더니 60회의 사이클이 필요했다.

 

손으로 시도했다면 3분정도는 걸렸을것 같다.