일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 아두이노#작품#사료급식기
- 내일배움카드
- 안드로이드 #앱개발#계산기
- 피온4
- D-ID
- 안드로이드#앱만들기#알바
- 불끌때
- 패스트캠퍼스
- 박스#강아지집#만들기
- 안드로이드
- Java & SpringBoot로 시작하는 웹 프로그래밍
- 혼술 술자리 인싸앱
- fifaonline4
- 랜덤스쿼드
- 강아지 스마트 펜스
- 독서감상문
- #FIFAONLINE4
- 강아지 #박스집 #복층
- 바이트디그리
- Ai
- 홈CCTV
- 자바 인강
- 랜덤
- 부르지마세요
- 안드로이드 그림판#그림메모장#낙서장
- K디지털크레딧
- 부의감각
- 스쿼드 메이커
- fifaonline
- 안녕 디지몬
- Today
- Total
LC Studio
HackerRank Time Convertion (JAVA) 본문
문제
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
- s = '12:01:00PM'
- Return '12:01:00'.
- s = '12:01:00AM'
- Return '00:01:00'.
풀이
문제를 요약해 보자면,
AM PM으로 구별하는 시간개념이 주어지면, 군대식 시간(24시간)개념으로 변경하여 출력하라는 것이다.
BufferedReader, Writer등은 자동으로 주어지고, class Result에 코드를 작성하면 된다.
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;
class Result {
/*
* Complete the 'timeConversion' function below.
*
* The function is expected to return a STRING.
* The function accepts STRING s as parameter.
*/
public static String timeConversion(String s) {
// Write your code here
StringBuffer result = new StringBuffer();
//hour에 입력받은 문자열의 앞2글자를 int형으로 저장
int hour = Integer.parseInt(s.substring(0,2));
//timeFlag에 입력받은 문자열의 맨 뒤 2글자를 String형으로 저장
String timeFlag = s.substring(s.length()-2, s.length());
//맨 뒤 2글자가 PM이라면
if(timeFlag.equalsIgnoreCase("PM")) {
//12시 이하의 시간이라면 12를 더해준다
if(hour < 12) {
hour += 12;
}
//append를 사용하여 result에 hour을 추가한다
result.append(String.valueOf(hour));
}
//맨 뒤 2글자가 AM이라면
else {
//12시라면 00시로 변경해준다
if(hour == 12) {
//append를 사용하여 result에 "00"을 추가한다
result.append("00");
}
//시간이 10시 미만이라면
else if(hour < 10){
//append를 사용하여 result에 '0'과 hour을 추가한다
result.append('0').append(String.valueOf(hour));
}
else{
//append를 사용하여 result에 hour을 추가한다
result.append(String.valueOf(hour));
}
}
}
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));
String s = bufferedReader.readLine();
String result = Result.timeConversion(s);
bufferedWriter.write(result);
bufferedWriter.newLine();
bufferedReader.close();
bufferedWriter.close();
}
}
배운점
1. StringBuffer
StringBuffer는 문자열을 추가하거나 변경 할 때 주로 사용하는 자료형이다.
- append
-insert
-substring
메소드를 가지고 있다.
*StringBuffer 자료형은 append 메소드를 사용하여 계속해서 문자열을 추가해 나갈 수 있다.
ex)
StringBuffer result = new StringBuffer();
result.append("문자열 추가");
System.out.println(result);->문자열 추가
*insert 메소드는 특정 위치에 원하는 문자열을 삽입할 수 있다.
ex)
StringBuffer result = new StringBuffer();
result.append("문자열 추가");
sb.insert(0, "hello ");
System.out.println(result);
->hello 문자열 추가
*substring 메소드는 String 자료형의 substring 메소드와 동일하게 사용된다.
StringBuffer result = new StringBuffer();
result.append("문자열 추가");
System.out.println(substring(0,3));
->문자열
substring(시작위치, 끝위치)와 같이 사용하면 StringBuffer 객체의 시작위치에서 끝위치까지의 문자를 뽑아낸다.
'Java > HackerRank' 카테고리의 다른 글
HackerRank Counting Sort 1 (JAVA) (0) | 2022.03.29 |
---|