[Note] 문제 시간초과 질문입니다.

  • ahfusrlrtk
    ahfusrlrtk

    Note 문제를 Java로 풀고 있었는데
    시간초과가 이해가 안되서 올립니다.
    input의 범위가 1-8이고 증가하는지 감소하는지만 검사하면 되는 문제라고 생각해서 작성하였습니다.
    여러번 소스코드를 변경하고 올려봤는데 계속 시간초과가 나옵니다.
    프로그램을 여러번 돌려서 JVM구동 시간에서 생기는 문제라면
    Java로는 풀 수 없는 문제인가요?ㅠㅠ

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    
    /**
     * @file Note.java
     * @date 2015. 4. 27.
     * @author yyh
     */
    
    public class Note {
        static char[] ascending = {
            '1','2','3','4','5','6','7','8'
        };
    
        static char[] decending = {
            '8','7','6','5','4','3','2','1'
        };
        public static void main(String[] args) throws Exception{
            BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
    
            int state = 0;
            char[] target = null;
            String in = input.readLine();
            if(in.charAt(0) == '1') {
                target = ascending;
            }
            else if(in.charAt(0) == '8')    {
                target = decending;
            } else  {
                System.out.println("mixed");
                return;
            }
    
            if(target != null)  {
                int j = 2;
                for(int i = 1; i < 8; ++i)  {
                    if(target[i] != in.charAt(j))   {
                        System.out.println("mixed");
                        return;
                    }
                    j+=2;
                }
    
                if(target == ascending) {
                    System.out.println("ascending");
                } else  {
                    System.out.println("descending");
                }
            }
    
        }
    }
    

    8년 전
0개의 댓글이 있습니다.
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.