- 생각
베스킨라빈스 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");
}
}
}
'algorithm' 카테고리의 다른 글
[JAVA] 백준 11055번 : 가장 큰 증가하는 부분 수열 (0) | 2020.12.10 |
---|---|
[JAVA] 백준 18429번 : 근손실 (0) | 2020.12.10 |
[JAVA] 백준 14241번 : 슬라임 합치기 (0) | 2020.12.07 |
[JAVA] 백준 1931번 : 회의실 배정 (0) | 2020.12.04 |
[JAVA] 백준 11399번 : ATM (0) | 2020.12.04 |