๊ธฐ๋ก๋ฐฉ

BOJ_9656 : ๋Œ ๊ฒŒ์ž„ 2 ๋ณธ๋ฌธ

CodingTest/Java

BOJ_9656 : ๋Œ ๊ฒŒ์ž„ 2

Soom_1n 2022. 10. 19. 16:21

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

9656๋ฒˆ: ๋Œ ๊ฒŒ์ž„ 2

์ƒ๊ทผ์ด๊ฐ€ ๊ฒŒ์ž„์„ ์ด๊ธฐ๋ฉด SK๋ฅผ, ์ฐฝ์˜์ด๊ฐ€ ๊ฒŒ์ž„์„ ์ด๊ธฐ๋ฉด CY์„ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • n๊ฐœ์˜ ๋Œ์ด ์žˆ์„๋•Œ, ab ๋‘ ์‚ฌ๋žŒ์ด ํ„ด๋งˆ๋‹ค 1๊ฐœ ํ˜น์€ 3๊ฐœ๋ฅผ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๊ณ  ๋งˆ์ง€๋ง‰ ๋Œ์„ ๊ฐ€์ ธ๊ฐ€๋ฉด ํŒจ๋ฐฐํ•œ๋‹ค.
    • ๋‘ ์‚ฌ๋žŒ์ด ์™„๋ฒฝํ•˜๊ฒŒ ๊ฒŒ์ž„์„ ํ•œ๋‹ค๊ณ  ํ–ˆ์„๋•Œ ์ƒํ™ฉ์„ ๊ทธ๋ ค๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 
      • n=1 : a >> b์Šน๋ฆฌ
      • n=2 : a b >> a์Šน๋ฆฌ
      • n=3 : a b a >> b์Šน๋ฆฌ
      • n=4 : a a a b >> a์Šน๋ฆฌ
    • ํ™€์ˆ˜๋Š” b์Šน๋ฆฌ, ์ง์ˆ˜๋Š” a์˜ ์Šน๋ฆฌ๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • n์ด ์ตœ๋Œ€ 1000์ด๊ณ  ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(n)์ด๋ฏ€๋กœ, ์ œํ•œ์‹œ๊ฐ„ 1์ดˆ๋Š” ๋„๋„ํ•˜๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

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());

        if (n % 2 != 0)
            System.out.println("CY");
        else
            System.out.println("SK");
    }
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • n์ด ํ™€์ˆ˜๋ฉด "CY", ์ง์ˆ˜๋ฉด "SK"๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์˜€์ง€๋งŒ, ๋ฌธ์ œ๋ฅผ ์ž˜๋ชป ์ดํ•ดํ•˜๊ณ  ๋ฒ ์Šคํ‚จ๋ผ๋นˆ์Šค31 ๊ฒŒ์ž„๊ทœ์น™์œผ๋กœ ์ ์šฉํ•ด์„œ ํ—ค๋งธ๋˜ ๋ฌธ์ œ์ด๋‹ค.
    • ํ’€๊ณ ๋ณด๋‹ˆ ๋„ˆ๋ฌด ์‰ฌ์šด๋ฐ ๋„ˆ๋ฌด์–ด๋ ต๊ฒŒ ์ ‘๊ทผํ–ˆ์—ˆ๋‹ค...
  • ๋‹ค ํ’€๊ณ ๋ณด๋‹ˆ ํƒœ๊ทธ์— DP๊ฐ€ ์žˆ๋Š”๊ฑธ ์•Œ์•˜๋‹ค. (ํ’€์ด ํฌ์ŠคํŒ… ์„ ์ฐธ๊ณ ํ–ˆ๋‹ค)
    • DP๋กœ ์–ด๋–ป๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์„๊นŒ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ ํ™”์‹์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
      • dp[n] = Math.min(dp[n-1], dp[n-3]) + 1;
    • ์™„๋ฒฝํ•œ ๊ฒŒ์ž„์„ ํ•œ๋‹ค๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ, ๋ฝ‘๋Š” ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œ๋กœ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฐพ์œผ๋ฉด ๋œ๋‹ค.
    • ๋ฝ‘๋Š” ํšŸ์ˆ˜๊ฐ€ ํ™€์ˆ˜๋Š” a์Šน, ์ง์ˆ˜๋ฉด b์˜ ์Šน๋ฆฌ์ด๋‹ค.

728x90