Problem
Given a time in -hour AM/PM format, convert it to military (24-hour) time.
Note: - 12:00:00AM on a 12-hour clock is 00:00:00 on a 24-hour clock.
- 12:00:00PM on a 12-hour clock is 12:00:00 on a 24-hour clock.
Example
- Return '12:01:00'.
- Return '00:01:00'.
Function Description
Complete the timeConversion function in the editor below. It should return a new string representing the input time in 24 hour format.
timeConversion has the following parameter(s):
- string s: a time in hour format
Returns
- string: the time in hour format
Input Format
A single string that represents a time in -hour clock format (i.e.: or ).
Constraints
- All input times are valid
Sample Input
07:05:45PM
Sample Output
19:05:45
주어진 시간을 12시간 AM/PM 형식에서 군사 시간(24시간 형식)으로 변환하세요.
노트:
- 12:00:00AM은 24시간 형식에서 00:00:00입니다.
- 12:00:00PM은 24시간 형식에서 12:00:00입니다.
예시
- 입력: 07:05:45PM
- 출력: 19:05:45
함수 설명
편집기에 있는 timeConversion 함수를 완성하세요. 이 함수는 24시간 형식으로 변환된 시간을 나타내는 새로운 문자열을 반환해야 합니다.
timeConversion 함수의 매개변수:
- String s: 12시간 형식의 시간을 나타내는 문자열
반환:
- String: 24시간 형식의 시간
입력 형식
- 12시간 시계 형식으로 표현된 하나의 문자열이 주어집니다 (예: hh:mm:ssAM 또는 hh:mm:ssPM).
제약 조건
- 모든 입력 시간은 유효합니다.
Solution
내가 해결한 방식은 다음과 같다.
public static String timeConversion(String s) {
// Write your code here
String period = s.substring(8, 10);
String hour = s.substring(0, 2);
String minute = s.substring(3, 5);
String second = s.substring(6, 8);
if (period.equals("AM")) {
if (hour.equals("12")) {
hour = "00";
}
} else { // PM
if (!hour.equals("12")) {
hour = String.valueOf(Integer.parseInt(hour) + 12);
}
}
return hour + ":" + minute + ":" + second;
}
1. substring 메서드
s.substring(beginIndex, endIndex)
- 주어진 문자열에서 특정 범위의 문자를 추출하여 새로운 문자열을 반환하는 메서드
- beginIndex는 포함되고, endIndex는 포함되지 않는다.
- ex) s.substring(8, 10)는 입력 문자열의 8번 인덱스부터 9번 인덱스까지의 문자를 추출하여 AM 또는 PM을 가져온다.
- ex) s.substring(0, 2)는 시(hour)를 가져온다.
2. Integer.parseInt
Integer.parseInt(String s)
- 문자열을 정수형으로 변환하는 역할
- 문자열이 정수로 표현될 수 있어야 하며, 그렇지 않으면 NumberFormatException이 발생
- ex) Integer.parseInt(hour)는 문자열 형태의 시간(예: "07")을 정수형으로 변환하여 연산에 사용할 수 있다.
3. String.valueOf
String.valueOf(int i)
- 다양한 데이터 타입을 문자열로 변환하는 메서드
- 특히 숫자형 데이터를 문자열로 변환할 때 유용하다.
- ex) String.valueOf(Integer.parseInt(hour) + 12)는 PM 시간에 12를 더한 후, 그 결과를 다시 문자열로 변환한다.
'코딩 테스트' 카테고리의 다른 글
[HackerRank] Diagonal Difference (0) | 2024.09.24 |
---|---|
[HackerRank] Lonely Integer (0) | 2024.09.23 |
[HackerRank] Find the Median (4) | 2024.09.23 |
[HackerRank] Plus Minus (0) | 2024.09.23 |
[HackerRank] Mini-Max Sum (0) | 2024.09.23 |