상세 컨텐츠

본문 제목

[SWEA 4831] 1일차-전기버스

💯ProblemSolving/문제 풀이

by :Eundms 2024. 9. 25. 21:21

본문

       문제 요약        

- 문제

 

 

- 입출력

 

 

         아이디어        

- 문제에 쓰여진대로 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);
    }
    
  }

}

 

 

728x90

'💯ProblemSolving > 문제 풀이' 카테고리의 다른 글

[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

관련글 더보기

댓글 영역