개발도생's Blog
[백준][Java] 15080_Every Second Counts 본문
[백준] 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객체를 사용했다.
이번에 입력 값에는 쌍점(:)과 개행(띄어쓰기)이 함께 입력이 되기 때문에 StringTokenizer객체의 구분자(delim)를 사용해 값을 구분했다.
반복문 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