본문 바로가기
백준/20001 - 25000

[백준] 23292번 : 코딩 바이오리듬(JAVA)

by lms0806 2021. 10. 31.
728x90

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

 

23292번: 코딩 바이오리듬

바이오리듬(biorhythm)이라는 이론을 들어본 적 있는가? 바이오리듬은 인체에 신체,감성,지성의 세가지 주기가 생년월일의 입력에 따라 어떤 패턴으로 나타나고, 이 패턴의 조합에 따라 능력이나

www.acmicpc.net

풀이

처음에 입력받은 날이랑 나중에 입력받은 n개랑 비교해서 가장 가까운 리듬을 가진 날짜를 출력하면 됩니다.

 

소스코드

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

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		String d = br.readLine();
		
		int max = 0;
		int n = Integer.parseInt(br.readLine());
		
		String answer = "";
		while(n --> 0) {
			String date = br.readLine();
			int a = 0, b = 0, c = 0;
			for(int i = 0; i < 4; i++) {
				a += mul(d.charAt(i) - date.charAt(i));
			}
			for(int i = 4; i < 6; i++) {
				b += mul(d.charAt(i) - date.charAt(i));
			}
			for(int i = 6; i < 8; i++) {
				c += mul(d.charAt(i) - date.charAt(i));
			}
			
			int sum = a * b * c;
			if(sum > max) {
				max = sum;
				answer = date;
			}
			else if(sum == max) {
				if(answer.compareTo(date) > 0) {
					answer = date;
				}
			}
		}
		System.out.print(answer);
	}
	
	public static int mul(int num) {
		return (int) Math.pow(num, 2);
	}
}
728x90

댓글