https://www.acmicpc.net/problem/1110
- 문제
- 코드 1
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
//처음 입력받을 숫자 설정
int N=in.nextInt();
in.close();
//다음에 올 숫자의 십의자리
//T=((N%10)*10);
//다음에 올 숫자의 일의자리
//예를들어 98를 입력하면 (9+8)%10=7이된다.
//예를들어 26을 입력하면 (2+6)%10=8이된다.
//O=((N / 10) + (N % 10)) % 10;
//for문 안에 들어서면서 N의값이 바뀔 수 있으니 copy변수에 N을 따로 저장
//나중에 바뀐 N과 copy가 같은지 체크하는 용도
int copy=N;
//사이클이 돌아가는 횟수를 세는 변수 count
int count=0;
while(true){
//최초 입력한 N이 아래의 계산식을 거쳐 다시 최초입력한 숫자로 찾아가는데
//도움을 주는 식
//N=T+O
//ex) 26입력->68->14->84->42->26
N=((N % 10) * 10) + (((N / 10) + (N % 10)) % 10);
//얼마나 많은 사이클이 돌아갔는지 매 계산마다 count를 올려준다.
count++;
//만약 다시 돌아온 숫자가 최초로입력한 숫자를 복사한 copy에 있는
//것과 동일하다면 반복문을 멈춘다.
if (copy==N){
break;
}
}
System.out.println(count);
}
}
처음이라 그런지 생각보다 로직을 짜는게 힘들었다.
설명은 주석을 참고하면 도움이 될 것이다.
- 결과
- 코드 2
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//처음 입력받을 숫자 설정
int N=Integer.parseInt(br.readLine());
br.close();
//다음에 올 숫자의 십의자리
//T=((N%10)*10);
//다음에 올 숫자의 일의자리
//예를들어 98를 입력하면 (9+8)%10=7이된다.
//예를들어 26을 입력하면 (2+6)%10=8이된다.
//O=((N / 10) + (N % 10)) % 10;
//for문 안에 들어서면서 N의값이 바뀔 수 있으니 copy변수에 N을 따로 저장
//나중에 바뀐 N과 copy가 같은지 체크하는 용도
int copy=N;
//사이클이 돌아가는 횟수를 세는 변수 count
int count=0;
while(true){
//최초 입력한 N이 아래의 계산식을 거쳐 다시 최초입력한 숫자로 찾아가는데
//도움을 주는 식
//ex) 26입력->68->14->84->42->26
N=((N % 10) * 10) + (((N / 10) + (N % 10)) % 10);
//얼마나 많은 사이클이 돌아갔는지 매 계산마다 count를 올려준다.
count++;
//만약 다시 돌아온 숫자가 최초로입력한 숫자를 복사한 copy에 있는
//것과 동일하다면 반복문을 멈춘다.
if (copy==N){
break;
}
}
System.out.println(count);
}
}
BufferedReader로만 바꿔줬을뿐 로직자체는 바뀌지 않았다.
- 결과
- 코드 1, 2 성능 비교
'Computer Science > BAEKJOON JAVA Practice' 카테고리의 다른 글
[백준]10818번: 최소, 최대 (0) | 2022.01.15 |
---|---|
[백준]10951번: A+B-4 (0) | 2022.01.14 |
[백준]10952번: A+B-5 (0) | 2022.01.13 |
[백준]10871번: X보다 작은 수 (0) | 2022.01.13 |
[백준]2439번: 별 찍기 -2 (0) | 2022.01.13 |