- 문제에 쓰여진대로 start에서 충전을 안하고 다음 충전소까지 갈 수 있는지 확인한 뒤,
그게 불가능하다면 전 위치에서 충전해서 다음 충전소로 간다
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution {
static int N;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for (int t = 1; t < T+1; t++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int K = Integer.parseInt(st.nextToken()); // 최대한 이동할 수 있는 정류장수
int N = Integer.parseInt(st.nextToken()); // N까지 이동
int M = Integer.parseInt(st.nextToken());// 충전기가 설치된 정류장번호
int[] charge = new int[M+2];
st = new StringTokenizer(br.readLine());
charge[0] = 0; // 시작위치
for(int i = 1; i < M+1; i++) {
charge[i] = Integer.parseInt(st.nextToken());
}
charge[M+1] = N; // 마지막위치
int ans = 0, start = 0;
for(int i = 1; i < M + 2; i++) {
if(charge[i] - charge[i-1] > K) {ans = 0; break;} // i-1충전소에서 i충전소까지 못옴
if(charge[i] - start > K) { // start에서 현재충전소까지 못옴
start = charge[i-1]; // 전의 충전소에서 충전진행
ans += 1 ;
}
}
// 종점 도착 x -> 0출력
System.out.println("#"+t+" "+ans);
}
}
}
[SWEA] 1211. ladder2 (0) | 2024.10.01 |
---|---|
[SWEA] 1210.[S/W 문제해결 기본] 2일차 - Ladder1 (0) | 2024.10.01 |
[BJ ] 1904 : 01타일 (0) | 2024.09.19 |
[BJ] 5427 : 불 (0) | 2024.08.09 |
[BJ] 7576 : 토마토 (0) | 2024.08.06 |
댓글 영역