본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1166 : 윤년 판별

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1166 : 윤년 판별 (자바, JAVA)입니다.

intro

Question

문제 설명

입력

해(year)가 입력된다.

출력

윤년이면 "yes"를 출력, 윤년이 아니면 "no"를 출력하시오.

예시

  • 입력 : 2012

  • 출력 : yes

Solution (풀이)

풀이 1 : 메모리 11240, 시간 95

public class Answer1 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int year = Integer.parseInt(br.readLine()); 

        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        // 4의 배수이면서 100의 배수가 아니거나, 400의 배수일 때 (둘 중 하나라도 해당되면)
        bw.append( (year%4==0 && year%100!=0) || (year%400==0) ? "yes" : "no" );
        bw.flush();
        bw.close();
    }
}

풀이 2 : 메모리 11164, 시간 66

public class Answer2 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int year = Integer.parseInt(br.readLine()); 
        // 4의 배수이면서 100의 배수가 아니거나, 400의 배수일 때 (둘 중 하나라도 해당되면)
        System.out.print( (year%4==0 && year%100!=0) || (year%400==0) ? "yes" : "no" );
    }
}

메모리와 시간을 확인해보면 알 수 있듯이, 출력해야하는 데이터가 단순하거나 하나일 때에는 굳이 다른 클래스를 이용하여 출력하는 것 보다 바로 그 값을 출력하는 것이 훨신 속도에 도움이 된다.

System.out.println(); 메소드보다 System.out.print();가 속도적인 측면에서는 더 낫기 떄문에 굳이 줄바꿈을 할 필요가 없다면 주의하길 바란다.

Ranking(순위)

반응형