728x90
[백준] 1476번 - 날짜 계산 (JAVA)
[접근 방법]
처음엔 최대 공배수 문제라고 판단 하였지만, 예제 3번 E = 1(+15), S = 2(+28), M = 3(+19)의 최대 공배수를 계산 한 결과
"1680" 이 나오게 되었다.
브루트포스 알고리즘 방식으로 모든 경우의 수를 고려해야 한다.
E, S, M 3개의 숫자 중 최댓값인 수를 제외하고 나머지 수를 각각 +15 +28 +19를 수행한다.
최종적으로 E = S = M을 만족하는 수 중 가장 작은 수를 출력한다.
[JAVA 코드]
// 1476번 - 날짜 계산
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
// 0. 입출력 선언 / 초기화
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
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 result;
while(true){
int max = Math.max(E, Math.max(S, M));
if (E != max){
E += 15;
}
if (S != max){
S += 28;
}
if (M != max){
M += 19;
}
if (E == S && S == M){
result = E;
break;
}
}
bw.write(result + "\n");
br.close();
bw.close();
}
}
[Rewind]
1. 어려웠던 점
- 새로운 유형의 문제이니 만큼, 접근 방법을 찾는 것이 어려웠다.
2. 알게된 점
-
3. 개선 방향
- 비슷한 문제를 여러개 풀어야 한다.
728x90
'백준 > 코드 플러스 (알고리즘 기초 - 2) (완)' 카테고리의 다른 글
[백준] 14500번 - 테크로미노 (★) (JAVA) (0) | 2023.02.12 |
---|---|
[백준] 6064번 - 카잉 달력 (!) (JAVA) (0) | 2023.02.12 |
[백준] 1748번 - 수 이어 쓰기 1 (!) (JAVA) (0) | 2023.02.11 |
[백준] 2309번 - 일곱 난쟁이 (!) (JAVA) (0) | 2023.02.09 |
[백준] 3085번 - 사탕 게임 (!) (JAVA) (0) | 2023.02.09 |