๋ฐฑ์ค 1110๋ฒ : https://www.acmicpc.net/problem/1110
โ ๋ฌธ์ ์ค๋ช
์ด ๋ฌธ์ ๋ 0~99 ์ฌ์ด์ ์ซ์ N์ ์ผ์ ํ ๋ฐฉ์์ผ๋ก ๊ณ์ ๋ํ์ฌ
๋ค์ N์ด ๋๊ฒ ๋ง๋๋ ๋ฐฉ์์ด์๋ค.
โก ์๋ฅผ ๋ค์ด
1. N < 10 ์ด๋ผ๋ฉด?
: 0์ ๋ถ์ฌ ๋ ์๋ฆฌ ์๋ก ๋ง๋ค๊ณ ๊ฐ ์๋ฆฌ์ ์ซ์๋ฅผ ๋ํ๋ค.
ex) N = 5 -> 50 + ( 5 + 0 ) => 55
-> ( 5 + 5 = 10 ) => 50 + 0 = 50
-> ( 5 + 0 = 5 ) => 5
2. N >= 10 ์ด๋ผ๋ฉด?
: ์ฃผ์ด์ง ์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ฆฌ ์ + ๊ฐ ์๋ฆฌ์ ์ซ์๋ฅผ ๋ํ ์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ฆฌ ์๋ฅผ
์ด์ด ๋ถ์ฌ ์๋ก์ด ์ซ์๋ฅผ ๋ง๋ ๋ค.
ex) N = 26
-> ( 2 + 6 = 8 ) => 60 + 8 = 68
-> ( 6 + 8 = 14 ) => 80 + 4 = 84
-> ( 8 + 4 = 12 ) => 40 + 2 = 42
-> ( 4 + 2 = 6 ) => 20 = 6 = 26
๊ฒฐ๊ตญ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋ํ๋ค ๋ณด๋ฉด ๋ค์ N์ผ๋ก ๋์์ค๊ฒ ๋๋๋ฐ,
๋ช ๋ฒ์ ๋ํด์ผ ๋์์ฌ ์ ์๋์ง ๊ทธ ์ฌ์ดํด์ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ ๊ฒ์ด
์ด ํ๋ก๊ทธ๋จ์ ๋ชฉํ์ด๋ค.
โ ์๊ณ ๋ฆฌ์ฆ ์ค๋ช
1. ์ซ์ N์ ์ ๋ ฅ
2. 'ten = N'์ 10์ ์๋ฆฌ ์, 'one = N'์ 1์ ์๋ฆฌ ์ ์ ์ฅ
3. 'do{} while ();'์ ํตํด 1๋ฒ ์ด์ ๋์๊ฐ๋๋ก ์ค์
[์์] 68 -> 6 + 8 = 14 -> 84
- one : ์ฃผ์ด์ง ์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ฆฌ ์ (8)
- ten + one =:๊ฐ ์๋ฆฌ์ ์ซ์๋ฅผ ๋ํ ๊ฐ์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ฆฌ ์ (4)
1. one * 10 = 80 : 4์ ๋ํ ์ ์๊ฒ 10์ ๊ณฑํ์ฌ ๋์๋ฆฌ ์๋ก ๋ง๋ฆ
2. ( ten + one ) % 10 = 14 % 10 = 4
: 10์ ์๋ฆฌ์ 1์ ์๋ฆฌ์๋ฅผ ๋ํ์ฌ 10์ผ๋ก ๋๋ ๋๋จธ์ง
3. n_copy = ( one * 10 ) + ( ( ten + one ) % 10 ) = 84
4. 3๋ฒ๊ณผ ๊ฐ์ ๋ฐฉ์์ ๊ณ์ํด์ ๋ฐ๋ณต -> ๋ฐ๋ณตํ ๋๋ง๋ค cycle++
5. n_copy๊ฐ n์ด ๋๋ฉด ์๋ ์๋ก ๋์์๋ค๋ ๋ป์ผ๋ก ํ์ถ
โ ์ฝ๋
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
int main(void) {
int n;
scanf("%d", &n); // ์ซ์ N ์
๋ ฅ
int n_copy, cycle = 0;
/* ten์ 10์ ์๋ฆฌ ์๋ก 26์ด๋ฉด 2๋ฅผ ๋ปํจ */
/* one์ 1์ ์๋ฆฌ ์๋ก 26์ด๋ฉด 6์ ๋ปํจ */
int ten = n / 10, one = n % 10;
/* n_copy๊ฐ n์ด ๋๋ฉด ์๋ ์๋ก ๋์์๋ค๋ ๋ป์ผ๋ก ํ์ถ */
do {
/* one = ์ฃผ์ด์ง ์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ฆฌ ์ */
/* ten + one = ๊ฐ ์๋ฆฌ์ ์ซ์๋ฅผ ๋ํ ๊ฐ */
n_copy = one * 10 + (ten + one) % 10;
/* ๋ค์ ์ฌ์ดํด ์ ๋ง๋ค๊ธฐ */
ten = n_copy / 10;
one = n_copy % 10;
cycle++;
} while (n_copy != n);
printf("%d\n", cycle);
return 0;
}
https://github.com/2hyunjinn/Baekjoon/blob/main/Baekjoon_1110.cpp
'๐ STUDY > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C / C++] ๋ฐฑ์ค 2884๋ฒ - ์๋์๊ณ (0) | 2022.03.21 |
---|---|
[C / C++] ๋ฐฑ์ค 2446๋ฒ - ๋ณ์ฐ๊ธฐ_9 (0) | 2022.03.21 |
[C / C++] ๋ฐฑ์ค 1316๋ฒ - ๊ทธ๋ฃน ๋จ์ด ์ฒด์ปค (1) | 2022.03.19 |
[C / C++] ๋ฐฑ์ค 1260๋ฒ - DFS ์ BFS (0) | 2022.03.19 |
[C / C++] ๋ฐฑ์ค 1152๋ฒ - ๋จ์ด์ ๊ฐ์ (0) | 2022.03.19 |