백준 9655번 돌 게임 JAVA

YB·2025년 2월 19일

링크텍스트

설명

처음에는 그리디를 이용해 풀었는데 DP로도 풀이가 가능하다.
시간복잡도: O(N), 공간복잡도: O(1)

코드

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

class Main {
	public static void main (String[] args) throws IOException {
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int count = 0;

		int n = Integer.parseInt(br.readLine());

		while(n>0){
			
			if(n>=3) n-=3;
			else n--;
			count++;
		}

		System.out.println((count%2)==0 ? "CY" : "SK" ) ;

	}
}

DP 코드

import java.util.*;
import java.io.*;
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[1001];
        dp[1] = 1;
        dp[2] = 2;
        dp[3] = 1;
        for (int i = 4; i <= n; i++) {
            dp[i] = Math.min(dp[i-1],dp[i-3]) + 1;
        }
        if (dp[n] % 2 == 0) {
            System.out.print("CY");
        } else {
            System.out.print("SK");
        }
    }
}
profile
안녕하세요

1개의 댓글

comment-user-thumbnail
2025년 2월 19일

안녕하세요~! 백준 푸시느라 고생많으셨습니다. 혹시 백준에서 푼 문제를 효율적으로 복습하고 정리하는 데 관심 있으시다면, https://mycodingtest.com 서비스를 한번 이용해보세요! 제가 진행한 개인 프로젝트인데 벨로그에서 백준 푸시는 분들께 댓글로 이렇게 홍보를 하고있습니다. 코테 준비에 도움이 되면 좋겠습니다 😊

답글 달기