Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 스프링 컨테이너
- 반복문
- map
- 코테
- 리눅스
- 명령어
- 자바
- 개발자 회고록
- 스프링 빈
- 자바스크립트 코딩의 기술
- 백준 javascript
- Memoir
- 연습문제
- 코딩테스트
- toCharArray
- 카카오
- 리눅스마스터 1급 정리
- 백준 java
- 월간코드챌린지
- java 백준 1차원 배열
- 리눅스마스터 3과목
- Linux
- Kotlin
- Java
- 리눅스마스터1급
- GoingBus
- 고잉버스
- JavaScript
- 프로그래머스
- 문자열
Archives
- Today
- Total
hoon DevLog
[Java] 프로그래머스 2016년 자바 본문
반응형
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12901
[문제 설명]
2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요?
두 수 a , b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요.
요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT입니다.
예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.
[제한조건]
- 2016년은 윤년입니다.
- 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일 같은 날짜는 주어지지 않습니다)
[입출력 예]
a | b | result |
5 | 24 | "TUE" |
[나의 풀이]
class Solution {
public String solution(int a, int b) {
String answer = "";
String[] day = { "FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU" };
int[] date = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int allDate = 0;
for (int i = 0; i < a - 1; i++) {
allDate += date[i];
}
allDate += (b - 1);
answer = day[allDate % 7];
return answer;
}
}
배열로 일일이 값을 세팅해주는 풀이...
다소 한정되어 보일 수 있는 코딩이나,
윤달인 2016년 한정 풀이이기 때문에,
성능면에선 빠른 편에 속한다고 볼 수 있다.
[다른 사람의 풀이]
import java.util.*;
class TryHelloWorld{
public String getDayName(int month, int day){
Calendar cal = new Calendar.Builder().setCalendarType("iso8601")
.setDate(2016, month - 1, day).build();
return cal.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, new Locale("ko-KR")).toUpperCase();
}
public static void main(String[] args){
TryHelloWorld test = new TryHelloWorld();
int a=5, b=24;
System.out.println(test.getDayName(a,b));
}
}
[정리]
- '%' 연산자의 특성을 이용해서 문제에서 제시한 값을 구할 수 있음
- 배열로 별도 정의 없이 Calendar 클래스를 활용해 자바 함수로도 사용 가능!
개인 피셜 난이도 : ★☆☆☆☆
아.... 함수를 쓰면 그만이었구나...
실무에서 날짜 관련 비즈니스 로직 구성시,
살짝살짝 봤었던 기억이 났었는데,
막상 코딩 테스트 문제 풀 때는 반복문, 조건문 밖에
생각이 나질 않는다...
다양한 풀이는 영양간식이라 생각하고 계속해서 접해보자!
끝!
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 같은 숫자는 싫어 자바 (0) | 2022.08.08 |
---|---|
[Java] 프로그래머스 가운데 글자 가져오기 자바 (0) | 2022.08.06 |
[Java] 프로그래머스 신고 결과 받기 자바 (0) | 2022.08.02 |
[Java] 프로그래머스 로또의 최고 순위와 최저순위 자바 (0) | 2022.07.08 |
[Java] 프로그래머스 신규아이디 추천 자바 (0) | 2022.07.05 |