• 생각

베스킨라빈스 31의 필승 방법은 30을 외치는 것이다.

 

30, 26, 22, 18, 14, 10, 6, 2 이렇게 외치면 이길 수 있다. 여기서 찾을 수 있는 것은

 

30, 30 - 4, 30 - 4*2, 30 - 4*3 .....를 보면 30에서 4의 배수로 빼주면 이길 수 있는 것을 알 수 있다.

 

여기서, 4의 배수는 3 + 1이다. 여기서 또 3은 베스킨라빈스 31의 규칙인 최대로 말할 수 있는 개수이다.

 

이걸 토대로 코딩을 구현하면 될 것 같다.

 

  • 코드

정답 코드 : 베스킨라빈스 31의 규칙을 찾아서 풀어낸 코드이다.

 

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

public class Main {
	static int A;
	static StringBuilder sb;

	public static void main(String[] args) throws Exception {
		SetData();
		System.out.println(sb);
	}

	private static void SetData() throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		A = Integer.parseInt(br.readLine());
		sb = new StringBuilder();

		for(int i = 1; i <= A; i++) {
			if(30 % (i+1) == 0)		// 내가 30을 부를 수 있으면 필승
				sb.append(i+"\n");
		}
	}
}

+ Recent posts