개발 일기

[백준 - JAVA] 1110번 더하기 사이클 (시간 초과 해결하기) 본문

알고리즘

[백준 - JAVA] 1110번 더하기 사이클 (시간 초과 해결하기)

윤지 2021. 1. 31. 23:41

 

 

'주어진 수가 10보다 작다면'이라는 조건에 꽂혀서 그에 맞게 로직을 짜다 보니 시간 초과가 계속 났다ㅠ

생각해보니까 10보다 작다면이라는 분기를 나누지 않아도 n/10은 0 이거나 다른 십의 자리 수일테니 상관이 없었다.

 

 

정답 코드

import java.io.*;

public class Main {
	public static void main(String args[]) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        int num = Integer.parseInt(br.readLine());
        int copy = num;
        int cycle = 0;
		
        do{
            num = ((num%10)*10)+ (((num/10)+(num%10))%10);
            cycle++;
        }while(copy != num);
        
        System.out.println(cycle);
	}
}

초반에 삼행연산자 쓰고 그럴때보다 한눈에 보기에도 너무 간단해졌다. 조건만 보고 너무 하나에 꽂히지말자..!

'알고리즘' 카테고리의 다른 글

[백준 - JAVA] 10950번, 15552번 (Scanner vs BufferedReader)  (0) 2021.01.30
Comments