jaybird92   7년 전

import java.util.*;
public class Main{
    public static void main(String args[]){
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        int count = 0;
        boolean flag = true;
        String solve =sol(str);
        while(flag) {
            if (solve.equals(str))
            {count++;
                flag = false;}
            else {
                count++;
                solve = sol(solve);
            }
        }
        System.out.print(count);
    }
    static String sol(String Question){
        String a1= "";
        if(Integer.parseInt(Question)<10 )
            Question = "0 "+ Question;
        int a = (Question.charAt(0)-'0') + (Question.charAt(1)-'0');
        if(a<10)
            a1 = "0" + Integer.toString(a);
        else
            a1 = Integer.toString(a);
        int b = (Question.charAt(1)-'0')*10 + (a1.charAt(1)-'0');
        return Integer.toString(b);
    }
}

스트링 메쏘드의 문제인가요? 시간초과가 나오는데 어떻게 해결해야할까요

chogahui05   7년 전

가비지 문제도 상당하긴 한데..

비교적 작은 호출 횟수 (최대 60회)에도 타임 리밋이 걸리는 걸 보면.. 다른 문제겠지요.

일단 2가지를 자세히 봐 봅시다. (1)번이라고 표시한 부분과 (2)번이라고 표시한 부분을..


devetude   7년 전

힌트를 드리면 사이클을 판단하여 해결하는 문제입니다.

정말 모르시겠다면 참고해서 풀어보시기 바랍니다.

https://github.com/devetude/BO...

댓글을 작성하려면 로그인해야 합니다.