https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PnnU6AOsDFAUq&categoryId=AV5PnnU6AOsDFAUq&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

www.swexpertacademy.com

풀이

  1. 월별로 일수를 배열에 미리 저장해둔다.
  2. 첫 번째 달 일수를 미리 합에 저장
  3. 두 번째 달부터 마지막 달까지의 합을 모두 합에 더하고
  4. 마지막 달 전체 일수에서 입력받은 일수를 빼준값을 다시 합에서 빼준다.

 

import java.io.*;
import java.util.StringTokenizer;

public class Solution {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int T = Integer.parseInt(br.readLine());
		int[] date = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //월별 일수를 미리 저장
		
		for(int tc=1; tc<=T; tc++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			int m1 = Integer.parseInt(st.nextToken())-1;
			int d1 = Integer.parseInt(st.nextToken());
			int m2 = Integer.parseInt(st.nextToken())-1;
			int d2 = Integer.parseInt(st.nextToken());
			
			
			int sum = date[m1]-d1+1; //첫 번째 달을 합에 미리 저장
            
            //두 번째 달부터 마지막 달까지 모두 합해준다.
			for(int i=m1+1; i<=m2; i++) {
				sum += date[i];
			}
            
            //마지막 달의 일수에서 입력받은 두 번째 일수를 빼준 값을 총 합에서 빼준다.
			sum -= date[m2]-d2;
            
			System.out.println("#"+tc+" "+sum);
		}
	}

}

'SWEA > D2' 카테고리의 다른 글

[SWEA] 1945. 간단한 소인수분해  (0) 2019.05.14
[SWEA] 1946. 간단한 압축 풀기  (0) 2019.05.14
[SWEA] 1954. 달팽이 숫자  (0) 2019.05.14
[SWEA] 1959. 두 개의 숫자열  (0) 2019.05.14
[SWEA] 1961. 숫자 배열 회전  (0) 2019.05.14

+ Recent posts