백준 1110번 더하기 사이클 문제 링크
문제에서 파악해야 할 핵심요소 및 마인드맵
- int 자료형의 십, 일의 자리 숫자는 어떻게 구할 수 있는가?
- String형으로 변환 후 [0],[1]의 자리로 구하고, int형으로 변환
- (채택) /10, %10로 각각 구해내기
- 조건이 이루어질 때까지 이루어지는 사이클
- do~while문 + while문에 조건 적기
- while문 + while문에 조건 적기
- while문(1) + while문 내부에 조건 + break 적기 << 반복을 세야 하는 경우 유리하다.
주의해야 할 점
- 값이 계속 변하므로 고정값에는 다른 변수를 만들어서 담아놓아야 한다. <<이번의 실수! 주의하자.
- 공통적으로 적용되는 것은 큰 사이클 안에 넣자. 각각 적용할 생각하지 말고
내 코드
#include <stdio.h>
int main(void) {
int input, tmp = 0, ten, one, res = 0, cnt = 0;
scanf("%d", &input);
tmp = input;
while (1) {
if (tmp < 10)
ten = 0;
else
ten = tmp / 10;
one = tmp % 10;
res = ten + one;
cnt++;
ten = tmp % 10;
one = res % 10;
tmp = (ten * 10) + one;
if (tmp == input)
break;
}
printf("%d", cnt);
return 0;
}
'Coding > Basic' 카테고리의 다른 글
[백준]2920번: 음계 c언어 (0) | 2019.09.10 |
---|---|
[백준] 3052번: 나머지 c++ (0) | 2019.09.10 |
[DataStructures]Tree트리에 대해서 알아보자 (0) | 2019.08.29 |
[백준] 2908 상수 C언어 (0) | 2019.08.28 |
[DataStructure]Array배열/List리스트(ArrayList배열리스트, LinkedList연결리스트) (0) | 2019.05.10 |