그냥 가끔의 기록장

백준 1110 본문

기타 개발/백준 문제풀이

백준 1110

the phoenix 2020. 3. 3. 19:23

백준 단계별 문제 풀기 while 파트 마지막 문제다. 

 

백준 1110 문제

 

 

문제 풀이

 

가장 먼저 scanf로 숫자를 입력받고, 새로운 수(주어진 수의 가장 오른쪽 자리 수 + 앞에서 구한 합의 가장 오른쪽 자리 수)를 구하기 위해 입력받은 수의 일의 자리, 십의 자리를 구한다.

 

tens= n /10; 으로 n의 십의자리 구하고

units= n %10; 으로 n의 일의자리 구한다...

 

1) 구한 합의 가장 오른쪽 자리 수 구하기

 

주어진 수(n)의 각 자리수를 합하고 해당하는 수의 일의자리를 구하면 된다.

앞에서 tens, units로 n의 각 자리수를 구했으므로 

tens+units 를 하여 합을 구한다. 

 

이 합의 일의 자리수는 10으로 나눈 나머지이므로 %10을 한다.

 

코드로 작성하면

sum=(tens + units) %10; 이다. 

 

2) 1)과 주어진 수 n의 일의 자리로 새로운 수 구하기

 

새로운 수는 주어진 수 n의 일의자리(units)을 십의 자리로 하고 1)을 일의자리로 가진다.

코드로 작성하면

sum=(units *10) +sum; 이 된다.

 

sum이 n과 동일할 때까지 반복해야 하므로

 

3) tens, units을 갱신해야한다. 

 

새로운 tens는 새로운 수인 sum의 십의 자리이므로 

tens = sum /10;

 

새로운 units는 새로운 수인 sum의 일의 자리이므로

units= sum %10;

 

4) 새로운 수인 sum을 구했을 경우 count에 1을 더해 사이클 수를 1 증가시킨다.

 

전체 코드는 아래와 같다. 

'기타 개발 > 백준 문제풀이' 카테고리의 다른 글

백준 2675  (0) 2020.03.03
백준 10809  (0) 2020.03.03
백준 10951, 10952  (0) 2020.03.03
백준 10871  (0) 2020.03.03
백준 2438, 2439  (0) 2020.02.26
Comments