새소식

알고리즘/문제

[BOJ/백준 - 1110] 더하기 사이클

  • -

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

 

1110번: 더하기 사이클

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

www.acmicpc.net


public class BOJ_1110 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int targetNum = Integer.parseInt(br.readLine());
int answer = 0;
int x = targetNum;
while(true){
answer++;
int y = getSumNumber(x);
x = getRightNumber(x)*10 + getRightNumber(y);
if(targetNum == x){
break;
}
}
System.out.println(answer);
}
// 우측값 가져오기
public static int getRightNumber(int n){
return n<10 ? n : n%10;
}
// 각 자릿수 합 구하기
public static int getSumNumber(int n){
return n<10 ? n : n%10+n/10;
}
}
view raw BOJ_1110.java hosted with ❤ by GitHub

 

특별한 알고리즘을 쓰는것도 아니고 정답비율 47% 넘는 쉬운 문제였지만 

왠지 모르게 재밌어서 올림.

 

지금 읽어보니까 우측 값 가져올때 굳이 삼항연산자 안해도 될거같음

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.