본문 바로가기
Problem Solving/SWEA

[SWEA] 7532. 세영이의 SEM력 연도

by 테리는당근을좋아해 2020. 2. 24.

문제

세영이는 태양(S)과 지구(E)와 달(M)을 이용하여 연도를 기억한다.

이를 이용한 방법을 SEM력이라고 부르며, SEM력은 자연수 3개, S, E, M으로 이루어져있다.

첫 번째 수는 태양, 두 번째는 지구, 세 번째는 달과 관련 있다.

AD 1년에 SEM력을 1 1 1로 정의했다.

1년이 지날 때마다 각 수를 1씩 증가시키는데,

S는 365보다 커지면 1로, E는 24보다 커지면 1로, M은 29보다 커지면 1로 돌아온다.

예를 들어서 AD 24년은 24 24 24이고 AD 25년은 25 1 25이다.

SEM력으로 이루어진 연도가 주어졌을 때, 이를 만족하는 실제 연도 중 가능한 가장 빠른 연도를 구하여라.

 

풀이방법

세 정수 S, E, M을 입력받았을 때, E가 가장 작은 수이므로 기준으로 잡는다.

 

e를 24씩 증가 시키면서 365로 나눈 나머지 값이 s와 일치하고 29로 나눈 나머지 값이 m이랑 일치할 때의 값을 찾는다.

 

소스코드

package samsung;

import java.util.*;

public class s_7532 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int test = sc.nextInt();
		for(int t = 1; t <= test; t++) {
			int s = sc.nextInt() - 1;
			int e = sc.nextInt() - 1;
			int m = sc.nextInt() - 1;
			
			int std = e;
			while(true) {
				if(std % 365 == s && std % 29 == m) {
					System.out.println("#" + t + " " + (std+1));
					break;
				}
				std += 24;
			}
		}
	}
}

 

출처

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

 

SW Expert Academy

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

swexpertacademy.com

 

댓글