문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
문자열 date가 Day Month Year 형태로 주어진다.
문자열 date를 YYYY-MM-DD 형태로 변환해라.
#1
Input: date = "20TH Oct 2052"
Output: "2052-10-20"
#2
Input: date = "6th Jun 1933"
Output: "1933-06-06"
#3
Input: date = "26th May 1960"
Output: "1960-05-26"
class Solution {
public String reformatDate(String date) {
StringBuilder sb = new StringBuilder();
int length = date.length();
String day = date.substring(0, length - 11);
day = day.length() == 1 ? "0" + day : day;
return sb
.append(date.substring(length - 4))
.append("-")
.append(monthToNumber(date.substring(length - 8, length - 5)))
.append("-")
.append(day)
.toString();
}
private String monthToNumber(String m){
return switch (m) {
case "Jan" -> "01";
case "Feb" -> "02";
case "Mar" -> "03";
case "Apr" -> "04";
case "May" -> "05";
case "Jun" -> "06";
case "Jul" -> "07";
case "Aug" -> "08";
case "Sep" -> "09";
case "Oct" -> "10";
case "Nov" -> "11";
case "Dec" -> "12";
default -> "";
};
}
}