문제 접근
두 번째 날짜가 첫 번째 날짜의 몇 번 째 날짜인지 구하라는데 처음엔 단순 두 날짜의 차이를 구하는지 알았는데, 차이를 구하고 +1해줘야 되더라(?)
고려해야 할 점은 매월 마지막 날짜가 다르단 건데
모든 월을 배열로 만들어서 사용해준다.
비교할 두 날짜의 월이 같다면 일수 차이만 비교해주고
월이 다르다면
시작 월의 총 일수 - 시작 월 일수 +
두 날짜 사이에 있는 모든 월의 일수 +
마지막 월의 일수
해주면 된다.
이후 출력할 때 +1 시키고 출력
import java.util.*;
import java.io.*;
public class Swea {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine()); // 테케
for(int t=1; t<=T; t++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int[] month = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int firstMonth = Integer.parseInt(st.nextToken());
int firstDay = Integer.parseInt(st.nextToken());
int secondMonth = Integer.parseInt(st.nextToken());
int secondDay = Integer.parseInt(st.nextToken());
int result = 0;
if(firstMonth == secondMonth) result = secondDay - firstDay;
else {
result += month[firstMonth-1] - firstDay;
for(int i = firstMonth+1; i< secondMonth; i++) result += month[i-1];
result += secondDay;
}
System.out.println("#"+t+" " + (result+1));
}
}
}
'알고리즘 > SWEA' 카테고리의 다른 글
[SWEA / 새로운 불면증 치료법 / JAVA] (1) | 2023.05.08 |
---|---|
[SWEA / 간단한 소인수분해 / JAVA] (0) | 2023.05.04 |
[SWEA / 두 개의 숫자열 / JAVA] (0) | 2023.05.02 |
[SWEA / 숫자 배열 회전 / JAVA] (0) | 2023.05.01 |
[SWEA / 수도 요금 경쟁 / JAVA] (0) | 2023.05.01 |
댓글