728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Introduction > Java Date and Time
Calendar 클래스는 YEAR, MONTH, DAY_OF_MONTH, HOUR 등과 같은 달력 필드 집합과 특정 순간 간의 변환 및 날짜 가져오기와 같은 달력 필드 조작을 위한 메서드를 제공하는 추상 클래스입니다.
날짜가 주어집니다. 해당 날짜의 요일을 반환하는 getDay 메서드를 작성하기만 하면 됩니다.
Example
- month = 8
- day = 14
- year = 2017
메서드는 MONDAY를 해당 날짜의 날짜로 반환해야 합니다.
Function Description
아래 에디터에서 findDay 함수를 완성하세요.
findDay에는 다음 매개변수가 있습니다.
- int : month
- int : day
- int : year
Returns
대문자로 된 요일
Input Format
MM DD YYYY 형식의 월, 일 및 연도를 각각 공백으로 구분하여 포함하는 한 줄의 입력.
Constraints
2000 < year < 3000
Sample Input
08 05 2015
Sample Output
WEDNESDAY
Explanation
2015년 8월 5일은 수요일이었습니다.
Code
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;
class Result {
/*
* Complete the 'findDay' function below.
*
* The function is expected to return a STRING.
* The function accepts following parameters:
* 1. INTEGER month
* 2. INTEGER day
* 3. INTEGER year
*/
public static String findDay(int month, int day, int year) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month-1);
calendar.set(Calendar.DATE, day);
return calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault()).toUpperCase();
}
}
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[] firstMultipleInput = bufferedReader.readLine().replaceAll("\\s+$", "").split(" ");
int month = Integer.parseInt(firstMultipleInput[0]);
int day = Integer.parseInt(firstMultipleInput[1]);
int year = Integer.parseInt(firstMultipleInput[2]);
String res = Result.findDay(month, day, year);
bufferedWriter.write(res);
bufferedWriter.newLine();
bufferedReader.close();
bufferedWriter.close();
}
}
Calendar 클래스의 set()으로 year, month, day 각각 세팅.
month는 0부터 시작해서 8월을 7로 바꿔서 지정. (0이 1월)
getDisplayName으로 출력시 Wednesday로 나오므로 toUpperCase()사용하여 대문자로 변경.
개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.
728x90
반응형
'> 개발-IT-인터넷 > > JAVA' 카테고리의 다른 글
[해커랭크(HackerRank) JAVA 풀이] - Java String Tokens (0) | 2021.10.01 |
---|---|
[해커랭크(HackerRank) JAVA 풀이] - Java Anagrams (0) | 2021.10.01 |
[해커랭크(HackerRank) JAVA 풀이] - Java String Reverse (0) | 2021.09.01 |
[해커랭크(HackerRank) JAVA 풀이] - Java Substring Comparisons (0) | 2021.08.31 |
[해커랭크(HackerRank) JAVA 풀이] - Java Substring (0) | 2021.08.31 |