항해99/99club1기TIL

[99club/TIL] 6주차 - 수요일 TIL(Today I Learned)

delay100 2024. 5. 1. 23:23
728x90
반응형
SMALL

안녕하세요. delay100 입니다!


미들러 문제


1번. 나이 계산하기 

https://www.acmicpc.net/problem/16199

만, 세, 연나이를 구하는 문제입니다.

 

1. 만 나이 = (기준일을 숫자로 변환 - 생일을 숫자로 변환) / 1년 일 수

1~12월까지 매달 31일까지 있다고 가정했습니다. (문제에서 주어진 값이 없기 때문에 가능)

  • 1달 = 31일
  • 1년 = 12개월 * 1달(31일) = 372일

 

예를들어,

생일2023년 4월 5일이면 년도를 일로 변환 시

년) 2023*12(개월)*31(1달) = 752,556일

월) 4*31(1달) = 124일

일) 5일

생일 총합 = 752,685일

 

기준일2024년 4월 5일이면  년도를 일로 변환 시

년) 2024*12(개월)*31(1달)  = 752,928일

월) 4*31(1달) = 124일

일) 5일

기준일 총합 = 753,057일

 

753057(기준일) - 752685(생일) = 372일

372일 / 년(372일) = 1(정답)

int month = 31;
int year = 12*month;

// temp = 기준일을 숫자로 변환 - 생일을 숫자로 변환
int temp = (sYear*year + sMonth*month + sDay) - (hYear*year + hMonth*month + hDay);

// temp / 1년 일 수
bw.write(Integer.toString(temp / year)+"\n");

2. 세 나이 = 연나이 + 1

3. 연 나이 = 기준년도 - 생일년도 

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

public class Main {
	public static void main(String args[]) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int month = 31; // 1개월을 31일로 가정
		int year = 12*month; // 1년은 12개월*31일
		
		int hYear = Integer.parseInt(st.nextToken());
		int hMonth = Integer.parseInt(st.nextToken());
		int hDay = Integer.parseInt(st.nextToken());
		
		st = new StringTokenizer(br.readLine());
		
		int sYear = Integer.parseInt(st.nextToken());
		int sMonth = Integer.parseInt(st.nextToken());
		int sDay = Integer.parseInt(st.nextToken());
		
		int age = sYear - hYear; // 연 나이
        // 기준일 - 태어난일
		int temp = (sYear*year + sMonth*month + sDay) - (hYear*year + hMonth*month + hDay);
		
		bw.write(Integer.toString(temp / year)+"\n"); // 기준일을 1년으로 나누면 나이가 나옴
		bw.write(Integer.toString(age + 1)+"\n"); // 연 나이에서 +1하면 세나이가 나옴
		bw.write(Integer.toString(age));
		
		
		br.close();
		bw.close();
	}
}

 

 


+ 비기너 문제

영수증 https://www.acmicpc.net/problem/25304

+ 챌린저 문제

분해합 https://www.acmicpc.net/problem/2231


봐주셔서 감사합니다. 피드백 환영합니다.

728x90
반응형
LIST