본문 바로가기

Development/CodingTest

[Greedy] Softeer(소프티어) level 2 연탄의 크기 java 풀이

https://softeer.ai/practice/7628

Softeer - 현대자동차그룹 SW인재확보플랫폼

softeer.ai

문제 풀이법

  1. 난로의 반지름들을 저장하는 배열을 만들고 오름차순 정렬
  2. 2부터 난로 반지름이 가장 큰 값까지(배열의 끝) 순회하며
  3. 각 집 별로 난로 반지름을 나눈 나머지 값이 0 이면 ++
  4. 이전 순회 값보다 현재 값이 더 크다면 answer값 대체

코드

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

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(in.readLine());

        int n = Integer.parseInt(st.nextToken());
        int[] house = new int[n];
        st = new StringTokenizer(in.readLine());
        for(int i = 0; i < n; i++){
            house[i] = Integer.parseInt(st.nextToken());
        }
        Arrays.sort(house);

        int answer = 0;
        int current;
        for(int j = 2; j <= house[n - 1]; j++){
            current = 0;
            for(int k = 0; k < n; k++){
                if(house[k] % j == 0){
                    current++;
                }
            }
            if(current > answer){
                answer = current;
            }
        }
        System.out.println(answer);
    }
}