Archives
Recent Posts
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
관리 메뉴

개발도생's Blog

[백준][Java] 15080_Every Second Counts 본문

BaekJoon

[백준][Java] 15080_Every Second Counts

개발도생 2022. 12. 8. 21:45

[백준] 15080_Every Second Counts 문제

 

15080번: Every Second Counts

Meredith runs a taxi service called Ruber which offers rides to clients in small towns in western Pennsylvania. She wants to get every possible dime out of people who use her taxis, so her drivers charge a flat fee not per minute but per second. It’s imp

www.acmicpc.net


15080, Every Second Counts 문제


승객이 택시에 탄 순간부터 내리는 순간까지 얼마의 시간이 경과했는지 초단위로 확인하는 문제다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException{

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
        // 구분자를 통해 문자를 구분
        StringTokenizer st = new StringTokenizer(br.readLine(), " :");

        int[] start = new int[3];	// 승객 탑승 시간
        int[] end = new int[3];		// 승객 하차 시간

        for(int i = 0; i < start.length; i++){
            start[i] = Integer.parseInt(st.nextToken());
        }	// 승객 탑승 시간을 배열에 저장

        st = new StringTokenizer(br.readLine(), " :");
        for(int i = 0; i < end.length; i++){
            end[i] = Integer.parseInt(st.nextToken());
        }	// 승객 하차 시간을 배열에 저장

        int startTime = start[2] + start[1] * 60 + start[0] * 3600;	// 승객 탑승 시간을 초 단위로 계산
        int endTime = end[2] + end[1] * 60 + end[0] * 3600;		// 승객 하차 시간을 초 단위로 계산
        
        // 자정이 넘었을 경우
        if(startTime > endTime) {	
           System.out.println(24 * 3600 - startTime + endTime); 
        // 자정이 넘지 않았을 경우
        } else {		
            System.out.println(endTime - startTime);
        }

    }
}

사용자가 값을 입력하고 입력된 값을 버퍼에 저장해주는 BufferedReader객체를 사용했다.

 

[Java][Class] Bufferedreader

코딩 테스트 문제들을 풀다가 우연히 알게 된 Bufferedreader 객에 대해서 공부해봤다. Bufferedreader Class는, 이름과 같이 버퍼를 사용하는 클래스다. 일반적으로 알고 있던 Scanner Class는 사용자가 값을

nan-o-nuel-do.tistory.com

이번에 입력 값에는 쌍점(:)과 개행(띄어쓰기)이 함께 입력이 되기 때문에 StringTokenizer객체의 구분자(delim)를 사용해 값을 구분했다.

 

[Java][Class] StringTokenizer

평소 유용하게 사용하고 있는 객체 StringTokenizer를 공부해봤다. StringTokenizer Class는, 단순하게 표현한다면 문자들을 토큰화 시켜준다고 이해하면 편할 것 같다. 토큰으로 분리된 문자들을 StringToken

nan-o-nuel-do.tistory.com

반복문 for문을 사용했고 구분된 값은 Integer.parseInt()로 형 변환을 시켜 정수 타입의 배열에 저장해주었다.

 

배열에 저장된 값들은 정수 타입 변수(startTime, endTime)에 식을 대입해 저장했다.

 

마지막으로 if문에는 아래와 같은 조건식을 대입했다.

①택시에 탄 승객이 자정 전에 승차해서 자정 이후에 하차했을 경우

②자정 이전에 탑승해서 자정 이전에 하차했을 경우


입력해야 되는 값
출력 값
입력해야 되는 값
출력 값


위와 같은 코드로 제출했을 때,

맞았습니다!!

'BaekJoon' 카테고리의 다른 글

[백준][Java] 15439_Vera and Outfits  (2) 2022.12.09
[백준][Java] 15232_Rectangles  (1) 2022.12.09
[백준][Java] 15059_Hard choice  (2) 2022.12.08
[백준][Java] 15051_Máquina de café  (0) 2022.12.06
[백준][Java] 15025_Judging Moose  (2) 2022.12.06
Comments