Baekjoon #9655

Baekjoon #9655

2개의 풀이 · Java, Python

문제 원문 보기 ↗

SOLUTION INFO

Java · Main.java

Main.java
import java.util.*;
import java.io.*;

public class Main {
    static int DP[] = new int[1001];
    public static void main(String[] args) {
        FastReader rd = new FastReader();

        // 짝수일때는 창영이가, 홀수일때는 상근이가 이기게 됩니다.
        // 반드시 상근이가 먼저 시작하고 1,3 홀수개 만큼 가져가기 때문.
        // System.out.println((N % 2 == 0) ? "CY" : "SK");

        int N = rd.nextInt();
        // 1 : 상근, 2 : 창영
        DP[1] = 1;
        for(int i = 1; i < 1000; i++) {
            if(DP[i + 1] == 0) DP[i + 1] = 3 - DP[i];
            if(i + 3 <= 1000) DP[i + 3] = 3 - DP[i];
        }
        System.out.println((DP[N] % 2 == 0 ? "CY" : "SK"));
    }

    static class FastReader {
        BufferedReader br;
        StringTokenizer st;

        public FastReader() {
            br = new BufferedReader(new InputStreamReader(System.in));
        }

        String next() {
            while(st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                }
                catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt() { return Integer.parseInt(next()); }
        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
            return str;
        }
    }
}

SOLUTION DESCRIPTION

풀이 설명

등록된 풀이 설명이 없습니다.