728x90
반응형
2024.05.11기준 - 브론즈3
백준, BEAKJOON, BOJ, JAVA, 자바
풀이
이 문제는 각자 다른 사용 주기를 가지고 있는 스킬을 사용하여 핑크핀을 처리하는 문제입니다.
저는 반복문을 초로 계산하여 (해당 초) % (스킬 사용 주기)가 0이 되면 스킬을 사용하는 코드를 작성했습니다.
- 먼저 세 마스코트의 스킬 사용 주기와 대미지, 그리고 핑크빈의 초기 체력이 입력으로 주어집니다.
- 각 마스코트가 일정 주기마다 스킬을 사용하면서 핑크빈의 체력을 감소시킵니다.
- 핑크빈의 체력이 0 이하가 되는 순간을 찾아 사냥이 종료됩니다.
- 사냥이 종료되는 시점까지 걸린 시간을 계산하여 출력합니다.
코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int t1 = Integer.parseInt(st.nextToken()); // 첫 번째 마스코트의 스킬 사용 주기
int d1 = Integer.parseInt(st.nextToken()); // 첫 번째 마스코트의 스킬 대미지
st = new StringTokenizer(br.readLine());
int t2 = Integer.parseInt(st.nextToken()); // 두 번째 마스코트의 스킬 사용 주기
int d2 = Integer.parseInt(st.nextToken()); // 두 번째 마스코트의 스킬 대미지
st = new StringTokenizer(br.readLine());
int t3 = Integer.parseInt(st.nextToken()); // 세 번째 마스코트의 스킬 사용 주기
int d3 = Integer.parseInt(st.nextToken()); // 세 번째 마스코트의 스킬 대미지
int n = Integer.parseInt(br.readLine()) - d1 - d2 - d3; // 핑크빈의 초기 체력
int result = 0;
if (n > 0) { // 핑크빈의 체력이 0 이하가 될 때까지 반복
for (int i = 1; ; i++) {
// 각 마스코트가 일정 주기마다 스킬을 사용하면서 핑크빈의 체력을 감소시킴
if (i % t1 == 0) {
n -= d1;
}
if (i % t2 == 0) {
n -= d2;
}
if (i % t3 == 0) {
n -= d3;
}
if (n <= 0) { // 핑크빈의 체력이 0 이하가 되면 사냥 종료
result = i;
break;
}
}
}
bw.write(Integer.toString(result));
bw.flush();
bw.close();
br.close();
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BAEKJOON / 백준 - JAVA 31825번 알파벳과 쿼리 (Easy) (0) | 2024.05.16 |
---|---|
BAEKJOON / 백준 - JAVA 13567번 로봇 (0) | 2024.05.12 |
BAEKJOON / 백준 - JAVA 14940번 쉬운 최단거리 (0) | 2024.05.10 |
BAEKJOON / 백준 - JAVA 12871번 무한 문자열 (0) | 2024.05.10 |
BAEKJOON / 백준 - JAVA 11053번 가장 긴 증가하는 부분 수열 (0) | 2024.05.10 |