[C] 백준 1110번 : 더하기사이클

2020. 8. 25. 16:21

 

 

 

주어진 수의 자릿수를 더해서 나온 수의 일의자리 값을 이용해 주어진 수의 뒤에 붙여 새로운 두자릿수를 만들고, 이 과정을 반복하는 사이클을 실행하는 프로그램을 만들어야 한다. 문제는 아래와 같다. 

 

 

처음 코드를 구상할 때 변수를 비교적 많이 사용해서 코드를 구상했다. 코드를 작성하다보니 복잡해지고 효율도 생기지 않는 것 같아 변수를 최소한으로 사용하려고 노력했다.

 

며칠동안 고민해서 코드를 작성하다가 거의 다 완성되었는데 cycle의 값이 출력되지 않는 문제에 직면해 결국 다른 사람들의 블로그를 참고하여 코드를 완성했다.

 

아래의 블로그를 참고하여 코드를 작성했다.

https://blog.naver.com/paula23/221396206823

 

[C언어]백준 - 1110번 : 더하기 사이클

요즘 매일 백준 문제를 몇 개씩 풀고있다. 다름 좀 늘고 있다고 생각하는데, 가끔 풀다 보면 예시에 나와있...

blog.naver.com

 

작성한 코드는 아래와 같다.

#include <stdio.h>

int main(){
	int N, a, b;
    int next=-1;   //N이 0일 경우를 고려
    int cycle=0;
    
    scanf("%d", &N);
    
    //N의 자릿수를 먼저 구함
    a = N/10; 	//N의 십의자리 숫자
    b = N%10	//N의 일의자리 숫자
    
    while(N!=next){
    	int mid = a+b;	
        next = b*10+mid%10;
        
        cycle++;
        
        //다음 사이클을 위해 새로운 자릿수를 구함
        a = next/10;	//next의 십의자리 숫자
        b = next%10;	//next의 일의자리 숫자
        
	//이후 while문의 첫줄부터 다시 반복
    }

	printf("%d", cycle);
}

 

혼자 코드에 대해 고민했을 때는 몹시 복잡한 코드일 것이라고 생각했는데 생각보다 간단하게 작성할 수 있는 코드였다. 앞으로는 이런 문제를 만났을 때 혼자서도 충분히 해결할 수 있는 능력을 기를 수 있길.

 

'Programming > BOJ' 카테고리의 다른 글

[Python] 백준 2163번 : 초콜릿 자르기  (0) 2021.04.09
[C] 백준 10039번 : 평균 점수  (0) 2020.08.25
[C] 백준 10951번 : A+B - 4  (0) 2020.06.07
[C] 백준 10952번 : A+B - 5  (0) 2020.06.03
[C] 백준 10871번 : X보다 작은 수  (0) 2020.06.03

BELATED ARTICLES

more