[BOJ] 9657. ๋Œ ๊ฒŒ์ž„ 3 (๐Ÿฅˆ, DP)

lemythe423ยท2023๋…„ 11์›” 27์ผ
0

BOJ ๋ฌธ์ œํ’€์ด

๋ชฉ๋ก ๋ณด๊ธฐ
73/133
post-thumbnail

๐Ÿ”—

ํ’€์ด

์™„๋ฒฝํ•˜๊ฒŒ ๊ฒŒ์ž„ ํ•œ๋‹ค = ์„œ๋กœ ์ด๊ธธ ์ˆ˜ ์žˆ๋Š” ํŒจ๋งŒ ์„ ํƒํ•œ๋‹ค

์ƒ๊ทผ์ด๊ฐ€ ํ•ญ์ƒ ๋จผ์ € ์‹œ์ž‘ํ•˜๊ณ , ์ƒ๊ทผ์ด๋‚˜ ์ฐฝ์˜์ด๋Š” ์–ด๋–ค ํŒจ๋ฅผ ๋‘๋“  ์ž์‹ ์ด ์ด๊ธธ ์ˆ˜ ์žˆ๋Š” ํŒจ๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋œ๋‹ค.

์šฐ์„  ๋Œ์€ 1,3,4๊ฐœ๋ฅผ ํ•œ ๋ฒˆ์— ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์–ด์ง€๋Š” ๋Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ 1,3,4 ์ค‘ ํ•˜๋‚˜๋ผ๋ฉด ๋ฌด์กฐ๊ฑด ๋จผ์ € ์‹œ์ž‘ํ•˜๋Š” ์ƒ๊ทผ์ด๊ฐ€ ์ด๊ธฐ๊ฒŒ ๋œ๋‹ค.

ํ•˜์ง€๋งŒ ๋Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋„˜์–ด์„œ๋Š” ๋งŒํผ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ 2๊ฐœ๋กœ ์ฃผ์–ด์ง„๋‹ค๋ฉด ๋จผ์ € ์‹œ์ž‘ํ•˜๋Š” ์ƒ๊ทผ์ด๋Š” ๋Œ์˜ ๊ฐœ์ˆ˜๋ณด๋‹ค ์ ์€ 1๊ฐœ๋ฅผ ๊ฐ€์ ธ๊ฐ€๊ฒŒ ๋˜๊ณ , ๊ทธ ๋‹ค์Œ์œผ๋กœ ์ฐฝ์˜์ด๊ฐ€ 1๊ฐœ๋ฅผ ๊ฐ€์ ธ๊ฐ€๊ฒŒ ๋˜๋ฉด์„œ ์ฐฝ์˜์ด๊ฐ€ ์ด๊ธฐ๊ฒŒ ๋œ๋‹ค.

๊ฒฐ๊ตญ ์ด ๋ฌธ์ œ๋Š” ๋Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋„˜์–ด์„œ์ง€ ์•Š๋Š” ๋งŒํผ ๊ฐ€์ ธ๊ฐ€๋ฉด์„œ ์ตœ๋Œ€ํ•œ ์ž์‹ ์ด ์ด๊ธธ ์ˆ˜ ์žˆ๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ฒŒ์ž„์„ ์ „๊ฐœํ•ด์„œ ๋ˆ„๊ฐ€ ์ด๊ธฐ๋Š”์ง€ ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋Œ์ด 5๊ฐœ ์ธ ๊ฒฝ์šฐ

์ƒ๊ทผ์ด๊ฐ€ 1๊ฐœ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒฝ์šฐ

๋Œ์€ 4๊ฐœ๊ฐ€ ๋‚จ๊ฒŒ ๋œ๋‹ค. ์ฐจ๋ก€๋Š” ์ฐฝ์˜์ด์—๊ฒŒ ๋„˜์–ด๊ฐ€๊ฒŒ ๋˜๊ณ  4๊ฐœ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฐฝ์˜์ด๊ฐ€ ์šฐ์Šนํ•˜๊ฒŒ ๋œ๋‹ค.

์ƒ๊ทผ์ด๊ฐ€ 3๊ฐœ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒฝ์šฐ

๋Œ์€ 2๊ฐœ๊ฐ€ ๋‚จ๊ฒŒ ๋œ๋‹ค. ์ฐจ๋ก€๊ฐ€ ์ฐฝ์˜์ด์—๊ฒŒ ๋„˜์–ด๊ฐ€์ง€๋งŒ ์ฐฝ์˜์ด๋Š” 1๊ฐœ๋ฐ–์— ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์—†๋‹ค. ๋‹ค์‹œ ์ฐจ๋ก€๋Š” ์ƒ๊ทผ์ด์—๊ฒŒ ๋„˜์–ด์˜ค๊ฒŒ ๋˜๊ณ  ์ƒ๊ทผ์ด๊ฐ€ ์šฐ์Šนํ•˜๊ฒŒ ๋œ๋‹ค.

์ƒ๊ทผ์ด๊ฐ€ 4๊ฐœ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ฒฝ์šฐ

๋Œ์€ 1๊ฐœ๊ฐ€ ๋‚จ๊ฒŒ ๋œ๋‹ค. ์ฐฝ์˜์ด๊ฐ€ 1๊ฐœ๋ฅผ ๊ฐ€๋ฉด์„œ ์šฐ์Šนํ•˜๊ฒŒ ๋œ๋‹ค.

DP ์ ํ™”์‹ ์ฐพ๊ธฐ

๊ฐ ๋Œ์— ๋Œ€ํ•ด ๋ช‡ ๊ฐœ์˜ ํ„ด์ด ์ด๋ฃจ์–ด์ง€๋ฉด ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋˜๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๋ฉด ๋œ๋‹ค. 1,3,4์˜ ๊ฒฝ์šฐ ๋ชจ๋‘ ํ•œ ๋ฒˆ์˜ ํ„ด๋งŒ ์ง€๋‚˜๋ฉด ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 1์ด๋‹ค. 2์˜ ๊ฒฝ์šฐ ๋ฐ˜๋“œ์‹œ 2๋ฒˆ์˜ ํ„ด์ด ๋Œ์•„์•ผ ํ•˜๋ฏ€๋กœ 2์ด๋‹ค.

5์˜ ๊ฒฝ์šฐ๋ถ€ํ„ฐ๋Š” ์‹œ์ž‘ํ•˜๋Š” ์‚ฌ๋žŒ์˜ ์˜์ง€์— ๋‹ฌ๋ฆฌ๊ฒŒ ๋˜๋Š”๋ฐ ์ƒ๊ทผ์ด๋Š” ๋ฐ˜๋“œ์‹œ ์ž์‹ ์ด ์ด๊ธฐ๋Š” ์ชฝ์œผ๋กœ ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ•˜๊ฒŒ ๋œ๋‹ค. 1๊ฐœ๋‚˜ 4๊ฐœ๋ฅผ ๊ฐ€์ ธ๊ฐ€๊ฒŒ ๋˜๋ฉด 4๊ฐœ๊ฐ€ ๋‚จ๊ฑฐ๊ฐ€ 1๊ฐœ๊ฐ€ ๋‚จ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒŒ์ž„์ด ํ•œ ํ„ด๋งŒ์— ์ข…๋ฃŒ๋œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ์ƒ๊ทผ์ด์—๊ฒŒ ๋ถˆ๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ทผ์ด๋Š” ์ตœ๋Œ€ํ•œ ๊ฒŒ์ž„์ด 2ํ„ด ๋„˜๊ฒŒ ๋‚จ์€ ๊ฒฝ์šฐ๋ฅผ ํƒํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ ์ค‘์—์„œ๋„ ์ง์ˆ˜๋กœ ๋‚จ์•„์•ผ ์ž์‹ ์—๊ฒŒ ๋‹ค์‹œ ๊ธฐํšŒ๊ฐ€ ๋Œ์•„์˜จ๋‹ค. ์ฆ‰ 3๊ฐœ๋ฅผ ๊ฐ€์ ธ๊ฐ€๊ณ  2๊ฐœ๋ฅผ ๋‚จ๋Š” ๊ฒฝ์šฐ๋ฅผ ํƒํ•˜๊ฒŒ ๋œ๋‹ค.

์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ 1๋ถ€ํ„ฐ n๊นŒ์ง€ ์ง„ํ–‰๋˜๋Š” ํ„ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ๊ฒŒ ๋œ๋‹ค. ํ™€์ˆ˜๋ผ๋ฉด ์ƒ๊ทผ์ด๊ฐ€, ์ง์ˆ˜๋ผ๋ฉด ์ฐฝ์˜์ด๊ฐ€ ์šฐ์Šนํ•˜๊ฒŒ ๋œ๋‹ค. ํ˜„์žฌ ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•˜๋Š” ์ž…์žฅ์—์„œ๋Š” ์ž์‹ ์ด ๊ฐ€์ ธ๊ฐ€๊ณ  ๋‚จ๋Š” ๋Œ์˜ ๊ฐœ์ˆ˜์— ์ ํ˜€ ์žˆ๋Š” ํ„ด์˜ ์ˆ˜๊ฐ€ ์ง์ˆ˜์—ฌ์•ผ ์ž์‹ ์—๊ฒŒ ๋‹ค์‹œ ํ„ด์ด ๋Œ์•„์˜ค๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ์ชฝ์œผ๋กœ ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•˜๋ ค ํ•˜๊ฒŒ ๋œ๋‹ค. ๋Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ i ๋ผ๊ณ  ํ•  ๋•Œ, i-1, i-3, i-4 ์— ์ ํ˜€์žˆ๋Š” ํ„ด์˜ ์ˆ˜๊ฐ€ ์ง์ˆ˜๋ฒˆ์ด๋ผ๋ฉด ํ˜„์žฌ ๋Œ์˜ ๊ฐœ์ˆ˜์—๋Š” ํ™€์ˆ˜๋ฒˆ์„ ๊ธฐ๋กํ•˜๊ณ , ์•„๋‹ˆ๋ผ๋ฉด ์ง์ˆ˜๋ฒˆ์„ ๊ธฐ๋กํ•œ๋‹ค.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        // ์ž…๋ ฅ๊ฐ’ ๋ฐ›๊ธฐ
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        int[] dp = new int[n+4];
        dp[1] = 1;
        dp[2] = 2;
        dp[3] = 1;
        dp[4] = 1;

        for (int i = 5; i < n+1; i++) {
            if (dp[i-1] == 2 || dp[i-3] == 2 || dp[i-4] == 2) {
                dp[i] = 1;
            } else {
                dp[i] = 2;
            }
        }

        if (dp[n] == 2) {
            System.out.println("CY");
        } else {
            System.out.println("SK");
        }
    }
}
profile
์•„๋ฌด๋ง์ด๋‚˜ํ•˜๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€