본문 바로가기
알고리즘 문제풀이/인프런

[알고리즘] 6-5 중복 확인(인프런 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의)

by jeonghaemin 2021. 6. 8.
728x90

인프런의 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 강의를 수강하며 예습 풀이 코드, 강의 수강 후 복습 풀이 코드를 정리하고 있습니다.

예습 풀이

  • List의 contains 메서드를 사용해서 중복을 발견
//중복 확인
public class Main6_5 {

    public static char solution(int n, int[] arr) {
        List<Integer> list = new ArrayList<>();

        for (int i = 0; i < n; i++) {
            if (list.contains(arr[i])) {
                return 'D';
            } else {
                list.add(arr[i]);
            }
        }

        return 'U';
    }


    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[] arr = new int[n];

        StringTokenizer st = new StringTokenizer(br.readLine());
        for (int i = 0; st.hasMoreTokens(); i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }

        System.out.println(solution2(n, arr));
    }
}

강의 풀이

  • 배열을 정렬하여 인접한 원소와의 비교를 통해 중복을 발견 -> 인접한 원소가 같으면 중복
//정렬을 사용하여 풀이
public static char solution2(int n, int[] arr) {
    Arrays.sort(arr);

    for (int i = 0; i < n - 1; i++) {
        if (arr[i] == arr[i + 1]) {
            return 'D';
        }
    }

    return 'U';
}

댓글