코딩테스트 & 문제 풀이

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

2023. 4. 17. 00:10

2022년 5월 12일에 작성됨

 

https://www.acmicpc.net/problem/1110

 

1110번: 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음,

www.acmicpc.net

 

 

문제 분석

수 입력(26)-> 각 자리 숫자의 합(2+6=8)-> 원래 수의 맨오른쪽 숫자(6)와 구한 합의 맨 오른쪽 숫자(8)를 합쳐서 새로운 수(68) 만듦.
이 과정을 반복하여 원래 수로 돌아오기 까지 실행한 횟수(사이클)를 구하는 것.

 

 

소스 코드(⭕)

#include <stdio.h>

int main(void)
{
	int num1, num2, cycle = 0;		// cycle은 0으로 시작

	scanf("%d", &num1);
	num2 = num1;		

	while (1) {			// while(1) : 무한 루프를 수행하는 반복문
		num1 = (num1 % 10) * 10 + ((num1 / 10 + num1 % 10) % 10);	
		cycle++;		// while문이 한 번 시행될 때마다 1씩 증가

		if (num1 == num2)		// 초깃값과 새로운 수가 일치한다면 while문 탈출
			break;
	}
	printf("%d", cycle);
	return 0;
}

 

코드 분석

1. 맨 처음 입력 받은 수 num1을 while 문으로 들어가기 전에 num2에 저장해준다. while 문으로 들어가면 num1이 계속해서 새로운 수로 바뀌기 때문이다.

 

2. 그 다음 무한 반복문을 정의한 뒤, 새로운 수를 만드는 연산식을 세워주고, 식이 한 번 시행될 때 마다 cycle이 1씩 증가하게 해준다. (여기서 'cycle'은 while 루프가 반복된 횟수로, 0으로 시작하여 while 문이 한 번 시행될 때 마다 1씩 증가함)

 

3. 마지막으로, num2에 저장되어 있는 초깃값과 새로운 수인 num1이 일치한다면 while 문을 빠져나가도록 한다.

 

 

 

end

while 문이 아직 익숙하지 않아서 더 꼼꼼하게 코드를 분석해봤다.

코드 줄마다 의미를 이해하고 나니까 while 문의 구조에 대해 어느정도 감이 오기 시작한다.

 

 

 

'코딩테스트 & 문제 풀이' 카테고리의 다른 글

[C]코드업_1068 : [기초-조건/선택실행구조] 정수 1개 입력받아 평가 출력하기(설명)  (0) 2023.04.19
[C]코드업_1065 : [기초-조건/선택실행구조] 정수 3개 입력받아 짝수만 출력하기(설명)  (0) 2023.04.18
[C]백준_2741 : N 찍기  (0) 2023.04.16
[C]백준_2525 : 오븐 시계  (2) 2023.04.15
[C]백준_2884 : 알람 시계  (0) 2023.04.14
  1. 문제 분석
  2. 소스 코드(⭕)
  3. 코드 분석
  4. end
'코딩테스트 & 문제 풀이' 카테고리의 다른 글
  • [C]코드업_1068 : [기초-조건/선택실행구조] 정수 1개 입력받아 평가 출력하기(설명)
  • [C]코드업_1065 : [기초-조건/선택실행구조] 정수 3개 입력받아 짝수만 출력하기(설명)
  • [C]백준_2741 : N 찍기
  • [C]백준_2525 : 오븐 시계
Hicecream
Hicecream
Hicecream
Hicecream
Hicecream
전체
오늘
어제
  • 분류 전체보기 (199)
    • 코딩테스트 & 문제 풀이 (159)
    • 동아리 활동 (8)
    • 외부 활동 (0)
    • 대학 과제 (3)
    • Git & Git Hub (5)
    • 코딩 프로젝트 (1)
    • 공부 메모 (17)
    • 일상 (2)
    • 참고사항 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Bronze 3
  • C
  • 구현
  • C언어 기초 100제
  • Bronze 5
  • 수학
  • Silver 4
  • Bronze 1
  • 사칙연산
  • Silver 5
  • LV1
  • Bronze 4
  • 정렬
  • Bronze 2
  • Java
  • 문자열
  • BOJ
  • Code up
  • programmers
  • python

최근 댓글

최근 글

hELLO · Designed By 정상우.
Hicecream
[C]백준_1110 : 더하기 사이클
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.