728x90
반응형
2024.07.12기준 - 실버1
백준, BEAKJOON, BOJ, JAVA, 자바
풀이
이 문제는 집의 좌표와 택배를 내놓는 시간이 주어졌을 때 모든 집의 택배를 다 가지고 돌아오는 시간을 출력하는 문제입니다.
저는 일단 제일 멀리 있는 집에서 돌아오는 과정에서 택배를 전부 회수하는 방법으로 진행을 했습니다.
1. 입력 받은 집의 위치와 물건을 내놓는 시간을 저장합니다.
int[] locations = new int[n];
int[] times = new int[n];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
locations[i] = Integer.parseInt(st.nextToken());
}
st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
times[i] = Integer.parseInt(st.nextToken());
}
2. 저장된 집의 위치로 일단 최대 거리까지 이동을 합니다.
// 일단 최대 거리까지 이동
int count = (locations[n - 1] < times[n - 1] ? times[n - 1] : locations[n - 1]);;
3. 최대 거리에서 돌아 오면서 물건을 전부 회수를 해줍니다.
회수를 하면서 해당 위치의 집에 도착했지만 물건이 없다면 물건을 내놓는 시간까지 기다립니다.
// 최대 거리에서 부터 돌아 오면서 전부 확인
for (int i = n - 2; i >= 0; i--) {
count += locations[i + 1] - locations[i];
if (count < times[i]) {
count = times[i];
}
}
4. 마지막 집 물건까지 회수한 다음 마지막 집에서 원점으로 다시 돌아오는 시간을 더 해 주어 출력합니다.
// 마지막에서 돌아오는 시간.
count += locations[0];
코드
package Main;
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));
int n = Integer.parseInt(br.readLine());
int[] locations = new int[n];
int[] times = new int[n];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
locations[i] = Integer.parseInt(st.nextToken());
}
st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
times[i] = Integer.parseInt(st.nextToken());
}
// 일단 최대 거리까지 이동
int count = (locations[n - 1] < times[n - 1] ? times[n - 1] : locations[n - 1]);;
// 최대 거리에서 부터 돌아 오면서 전부 확인
for (int i = n - 2; i >= 0; i--) {
count += locations[i + 1] - locations[i];
if (count < times[i]) {
count = times[i];
}
}
// 마지막에서 돌아오는 시간.
count += locations[0];
bw.write(Integer.toString(count));
bw.flush();
bw.close();
br.close();
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BAEKJOON / 백준 - JAVA 28702번 FizzBuzz (0) | 2024.07.14 |
---|---|
BAEKJOON / 백준 - JAVA 30802번 웰컴 키트 (2) | 2024.07.13 |
BEAKJOON / 백준 - JAVA 31994번 강당 대관 (2) | 2024.07.12 |
BAEKJOON / 백준 - JAVA 21964번 선린인터넷고등학교 교가 (0) | 2024.07.12 |
BAEKJOON / 백준 - JAVA 31923번 마라탕후루 (0) | 2024.07.11 |