지구정복

[브루트포스] 백준 - 날짜계산 본문

카테고리 없음

[브루트포스] 백준 - 날짜계산

nooh._.jl 2021. 8. 22. 17:04
728x90
반응형

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

 

1476번: 날짜 계산

준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타

www.acmicpc.net

 

-문제해설

1. e, s, m을 입력받는다.

 

2. ee, ss, mm, cnt를 선언한다.

 

3. 무한루프 돌면서 ee가 e와 같고 ss가 s와 같고 mm이 m과 같으면 빠져나오고

아니면 ee가 16이면 ee는 1, ss가 29이면 ss는 1, mm이 20이면 mm은 1로 초기화를 한다.

그리고 cnt를 1 증가시킨다.

 

4. 무한루프를 빠져나왔을 때 cnt값을 출력한다.

 

 

 

 

-자바

package bruteforce;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class BJ1476 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer( br.readLine() );
		int e = Integer.parseInt( st.nextToken() );
		int s = Integer.parseInt( st.nextToken() );
		int m = Integer.parseInt( st.nextToken() );
		int cnt = 1;
		int ee = 1, ss = 1, mm = 1;
		
		while( true ) {
			if( e == ee && s == ss  && m == mm ) break;
			if( ++ee == 16 ) ee = 1;
			if( ++ss == 29 ) ss = 1;
			if( ++mm == 20 ) mm = 1;
			
			cnt++;
		}
		System.out.println( cnt );
	}
}

 

 

-파이썬

from sys import stdin
input = stdin.readline
e, s, m = map(int, input().split())
cnt = 1; ee = 1; ss = 1; mm = 1;
while True:
    if ee==e and ss==s and mm==m: break
    cnt += 1; ee += 1; ss += 1; mm += 1;
    if ee == 16: ee = 1
    if ss == 29: ss = 1
    if mm == 20: mm = 1
print( cnt )
728x90
반응형
Comments