본문 바로가기

알고리즘

입력받은 정수형 배열에서 찾아야 하는 값과 일치하는 값의 개수를 반환하는 알고리즘

시나리오 :

많은 인파 중 친구 2명을 찾아야하는데, 키를 이용해 후보군을 추려 친구를 찾아보려 한다.

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


public class Main {
	public static final Scanner scanner = new Scanner(System.in);

	/**
     *
     * @param data 각 사람들의 키를 저장한 배열
     * @param n     사람들의 수
     * @param m     찾아야 하는 첫번째 사람의 키
     * @param s     찾아야 하는 두번째 사람의 키
     * @return      첫번째 혹은 두번째 사람과 키가 일치하는 사람의 수
     */
	public static int getCount(int[] data, int n, int m, int s){
		int count = 0 ; //확인해보아야 할 후보의 수
		for(int i = 0; i < n; i++){
			//i := 0 ~ n-1 사이의 모든 정수
			//data[i] := data[0] ~ data[n-1] 의 모든 원수(값)
			if(data[i] == m || data[i] == s){ //만약 첫번째(m)나 두번쨰(s) 사람과 키가 같다면
				count++; //확인할 수가 하나씩 늘어남
			}
		}
		
		return count;
	}

	public static void main(String[] args) throws Exception {
		int n = scanner.nextInt(); //총 사람 인원
		int m = scanner.nextInt(); //찾을 사람(1)의 키
		int s = scanner.nextInt(); //찾을 사람(2)의 키
		int[] data = new int[n]; //모든 사람들의 키 배열
		for (int i = 0; i < n; i++) {
			data[i] = scanner.nextInt();
		}
		
		int answer = getCount(data, n, m, s);
		
		System.out.println(answer);
	}
	
}

 

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