백준_2562_최댓값

임정민·2023년 1월 21일
5

알고리즘 문제풀이

목록 보기
20/173
post-thumbnail

코딩테스트 연습 스터디 진행중 입니다. ✍✍✍
Notion : https://www.notion.so/1c911ca6572e4513bd8ed091aa508d67

문제

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

[나의 풀이]

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;

public class Main {

    // 입력값 받기
    static ArrayList<Integer> getData() throws NumberFormatException, IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<Integer> list_origin = new ArrayList<>();

        int n = 0;

        for (int i = 0; i < 9; i++) {
            n = Integer.parseInt(br.readLine());
            list_origin.add(n);
        }

        System.out.println(Arrays.deepToString(list_origin.toArray()));

        return list_origin;
    }

    // 최댓값 찾기
    static int checkMax(ArrayList list_origin) {

        int Max = 0;

        ArrayList<Integer> list_sort = (ArrayList<Integer>) list_origin.clone();

        System.out.println(list_origin == list_sort);

        list_sort.sort(Comparator.naturalOrder());

        System.out.println(Arrays.deepToString(list_sort.toArray()));

        Max = (int) list_sort.get(list_sort.size() - 1);

        return Max;
    }

    // 최댓값 위치 찾기
    static int findIndex(ArrayList list_origin, int Max) {

        int idx = 0;

        // n번째 수를 찾는 것이므로 인덱스+1
        idx = list_origin.indexOf(Max) + 1;

        return idx;
    }

    public static void main(String[] args) throws NumberFormatException, IOException {

        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        // 입력값 받기
        ArrayList<Integer> list_origin = getData();
        // 최댓값 찾기
        int Max = checkMax(list_origin);
        // 최댓값 위치 찾기
        int idx = findIndex(list_origin, Max);

        // 답 출력하기
        bw.append(Max + "\n");
        bw.append(Integer.toString(idx));
        bw.flush();

    }

}

Comparator.naturalOrder를 이용하여 ArrayList를 정렬할 수 있습니다!
indexOf() 를 활용하여 ArrayList 요소의 인덱스를 반환할 수 있었습니다!

감사합니다.🐥🐥🐥

profile
https://github.com/min731

1개의 댓글

comment-user-thumbnail
2023년 1월 22일

👍

답글 달기