https://www.acmicpc.net/problem/1476
[난이도]
- Silver 5
[알고리즘]
- 부르트 포스
- 수학
[정답 코드]
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int E = Integer.parseInt(st.nextToken());
int S = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int e = 1, s = 1, m = 1;
int answer = 1;
while (true) {
if (e == E && s == S && m == M) {
break;
}
answer++;
e++;
if (e > 15) {
e=1;
}
s++;
if (s > 28) {
s=1;
}
m++;
if (m > 19) {
m=1;
}
}
System.out.println(answer);
}
}
[풀이]
1. e = 1, s = 1, m = 1로 초기화 해준다.
2. e++, s++, m++을 하면서 e==E, s==S, m==M이 될때 까지 반복한다.
3. e는 15를 넘어갈 경우 1로 돌아온다. s는 28을 넘어갈 경우 1로 돌아온다. m은 19를 넘어갈 경우 1로 돌아온다.
4. answer를 반환한다.
좀더 수학적으로 스마트하게 풀 수 있는 방법이 있을것 같은데 내 머리로는 불가능 했다.
'코딩테스트' 카테고리의 다른 글
백준 1018: 체스판 다시 칠하기[JAVA] (0) | 2024.04.11 |
---|---|
백준 2057: 팩토리얼 분해[JAVA] (0) | 2024.04.10 |
백준 1543: 문서 검색[JAVA] (0) | 2024.04.09 |
백준 1436: 영화감독 숌[JAVA] (0) | 2024.04.09 |
백준 1251: 단어 나누기[JAVA] (0) | 2024.04.09 |