본문 바로가기

PS/boj

[BOJ] 17091 단어 시계

문제 링크

www.acmicpc.net/problem/17091

풀이

그냥 케이스를 잘 따져서 출력하는 문제. 상당히 귀찮다.

Java 코드

더보기
import java.io.*;

public class Main {
    private static String[] hours = new String[]{
            "one", "two", "three", "four", "five", "six",
            "seven", "eight", "nine", "ten", "eleven", "twelve", "one"
    };
    private static String[] minutes = new String[]{
            "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven",
            "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"
    };

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

        String pastOrTo = m <= 30 ? "past " : "to ";
        if (m > 30) m = 60 - m;
        else --h;

        if (m == 0) System.out.println(hours[h] + " o' clock");
        else if (m == 1) System.out.println("one minute " + pastOrTo + hours[h]);
        else if (m == 15) System.out.println("quarter " + pastOrTo + hours[h]);
        else if (m == 30) System.out.println("half " + pastOrTo + hours[h]);
        else if (m < 20) System.out.println(minutes[m - 1] + " minutes " + pastOrTo + hours[h]);
        else {
            System.out.print("twenty");
            if (m % 10 != 0) System.out.print(" " + minutes[m % 10 - 1]);
            System.out.println(" minutes " + pastOrTo + hours[h]);
        }
    }
}

'PS > boj' 카테고리의 다른 글

[BOJ] 1498 주기문  (0) 2021.01.19
[BOJ] 12760 최후의 승자는 누구?  (0) 2021.01.19
[BOJ] 1522 문자열 교환  (0) 2021.01.19
[BOJ] 10823 더하기 2  (0) 2021.01.18
[BOJ] 1000 A+B  (0) 2021.01.17