문제설명 : 0<= a<= 99 (a는 정수) 인 x값이 주어졌을 때 다음과 같은 규칙을 통해 다시 처음 a 값과 같은 값이 나올 때까지 사이클의 길이를 출력하는 코드를 작성하시오.
규칙 : 초기a값이 주어지면, b = a//10 + a%10 --> new_a = (a%10)*10 + b%10 , b= new_a//10 + new_a%10 이러한 사이클 반복!
eg) a = 26 , b = 2+6 = 8
new_a = 68 , b= 6+8 = 14
new_a = 84 , b = 8+4 = 12
new_a = 42 , b = 4+2 = 6
new_a = 26 = a
-> 4번의 b를 만들고 초기 a값과 같아졌으므로 여기선 4를 출력해야 정답이다.
예제 값
오답 코드
오답이유
1.초기 a값과 새로운 a값을 비교해야하는데 조건식을 잘못지정(a,b를 비교함)했다.
2.계속 변하는 a에 대해, 초기값을 따로 지정해 주지 않았다. 이로 인해 무한 사이클이 돌 수 있다.
정답 코드
하지만 시간이 오래걸려서, 사이클 카운팅 방식을 빈 list에 추가하는 방식 대신, c라는 변수에 사이클마다 1을 더하는 방식으로 변경하면
아래와 같은 코드로 나온다. 이것도 정답이며 더 빠르게 수행하는 것을 확인했다.
* 백준 포스팅 원칙 : 풀었지만 다음에 못 풀 것 같은 문제 / 구글의 도움을 받은 문제 / 나중에 보면 도움 받을 것 같은 문제 포스팅
https://link.coupang.com/a/rGILU
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 10828번 :스택 파이썬(Python) 풀이 (1) | 2021.04.21 |
---|---|
[백준]10871번 : X보다 작은 수 파이썬 (0) | 2020.12.18 |
[백준]15552번 : 빠른 A+B 파이썬(Python) 풀이 (0) | 2020.12.17 |
[백준] 14681번 :사분면 고르기 파이썬(Python) 풀이 (0) | 2020.12.17 |