반응형
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 | 29 | 30 | 31 |
Tags
- NestJS
- array
- 자바스크립트
- 코테준비
- SWEA
- spring
- javascript
- mybatis
- 배열
- 정렬
- 중간 평균값 구하기
- 백준
- 코딩테스트
- 콜백지옥
- 코테
- 그리디알고리즘
- 인프런
- 프로그래머스
- 카카오
- 자료구조
- java
- 삼성소프트웨어아카데미
- js
- 알고리즘
- 스텍
- 삼성
- 자바
- 코딩
- AtoZ0403
- stack
Archives
- Today
- Total
개발에 AtoZ까지
[JAVA][D1] 2056. 연월일 달력 본문
반응형
문제
연월일 순으로 구성된 8자리의 날짜가 입력으로 주어진다.
해당 날짜의 유효성을 판단한 후, 날짜가 유효하다면
[그림1] 과 같이 ”YYYY/MM/DD”형식으로 출력하고,
날짜가 유효하지 않을 경우, -1 을 출력하는 프로그램을 작성하라.
연월일로 구성된 입력에서 월은 1~12 사이 값을 가져야 하며
일은 [표1] 과 같이, 1일 ~ 각각의 달에 해당하는 날짜까지의 값을 가질 수 있다.
※ 2월의 경우, 28일인 경우만 고려한다. (윤년은 고려하지 않는다.)
[입력]
입력은 첫 줄에 총 테스트 케이스의 개수 T가 온다.
다음 줄부터 각 테스트 케이스가 주어진다.
[출력]
테스트 케이스 t에 대한 결과는 “#t”을 찍고, 한 칸 띄고, 정답을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
예시
풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//각 달의 마지막 날짜
int[] MonthDay = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
try {
int N =Integer.parseInt(br.readLine());
for(int i=1;i<=N;i++) {
String days = br.readLine();
//subString을 사용하여 년월일을 숫자로 변환
int year = Integer.parseInt(days.substring(0, 4));
int month = Integer.parseInt(days.substring(4, 6));
int day = Integer.parseInt(days.substring(6, 8));
boolean flag = true;
if(year<=0) {
flag=false;
}
//월이 1월보다 작거나, 12월보다 큰경우를 위한 If문
if (flag&&month < 1 || month > 12)
flag = false;
//만약 month가 잘못됐다면 day를 검사할 필요가 없다.
//만약 month가 정상인데도 day가 해당 month에 맞지않는 경우를 위한 If문
if(flag&&day>MonthDay[month-1]||day<1)
flag = false;
//출력문
if(flag) {
System.out.printf("#%d %04d/%02d/%02d\n",i,year,month,day);
}
else {
System.out.println("#"+i+" -1");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
반응형
'코딩테스트 준비 > SWEA' 카테고리의 다른 글
[JAVA][D1] 2050. 알파벳을 숫자로 변환 (0) | 2021.01.04 |
---|---|
[JAVA][D2] 2007. 패턴 마디의 길이 (0) | 2021.01.03 |
[JAVA][D2] 1926. 간단한 369게임 (0) | 2021.01.03 |
[JAVA][D1] 2058. 자릿수 더하기 (0) | 2021.01.03 |
[JAVA][D1] 2063. 중간값 찾기 (0) | 2021.01.03 |
[JAVA][D1] 2068. 최대수 구하기 (0) | 2021.01.01 |
[JAVA][D1] 2070. 큰 놈, 작은 놈, 같은 놈 (0) | 2021.01.01 |
Comments