본문 바로가기

코딩테스트 준비/백준

[백준] 1110번 :더하기 사이클 파이썬(Python) 풀이

반응형

 

출처 : 미리캔버스

 

 

문제설명 : 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

 

[한빛미디어]이것이 취업을 위한 코딩 테스트다 with 파이썬

COUPANG

www.coupang.com

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

반응형