본문 바로가기

알고리즘

검색 조건: 생일(month)과 생일이 일치하는 도토리 중 가장 큰 키를 갖는 도토리를 반환하는 함수

추가 시나리오: 도토리들은 키를 기준으로 오름차순으로 정렬되어 있다고 가정

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


public class Main {
	public static final Scanner scanner = new Scanner(System.in);
	/**
     * 생일이 m월인 가장 큰 키의 도토리를 찾는 함수
     * @param height  각 도토리의 키
     * @param month   각 도토리의 출생 월
     * @param n   도토리의 수
     * @param m   찾고자 하는 달
     * @return    month[k] == m인 가장 큰 height[k]
     */
	public static int getMaximumHeight(int[] height, int[] month, int n, int m){
		int maxHeight = -1;
		for(int i = n - 1; i >= 0; i--){
     			if(month[i] == m){
				maxHeight = height[i];
				break;
			} 
    		}
             	return maxHeight;
	}

	public static void main(String[] args) throws Exception {
		System.out.println("인원 수를 입력해주세요");
		int n = scanner.nextInt();
		int[] height = new int[n];
		int[] month = new int[n];

		System.out.println("키를 입력해주세요");
		for(int i = 0 ; i < n ; i ++)
		{
			height[i] = scanner.nextInt();
		}
		
		System.out.println("생일(월)을 입력해주세요");
		for (int i = 0; i < n; i++) {
			month[i] = scanner.nextInt();
		}

		System.out.println("찾으시는 생일(월)을 입력해주세요");
		int m = scanner.nextInt();

		int answer = getMaximumHeight(height, month, n, m);

		System.out.println(answer);
	}

}

 

10주 완성 알고리즘 코딩테스트 - goorm edu에서 들으실 수 있는 내용입니다.