Back-end/Algorithm

[프로그래머스] 레벨2 최댓값과 최솟값

Nellie Kim 2023. 6. 25. 23:35
728x90

문제 설명

  • 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다.
  • 문자열 s에 나타나는 숫자 중 최소값과 최대값을 찾아
  • 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
  • 문자열 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
public static String solution(String s) {
    String[] array = s.split(" ");
    ArrayList<Integer> orderedArrList = new ArrayList<>();

    for (String num : array)
        orderedArrList.add(Integer.parseInt(num));

    for (int startIdxOfPassThrogh = 0; startIdxOfPassThrogh < orderedArrList.size()-1; startIdxOfPassThrogh++) {
        int minmumValueIdx = startIdxOfPassThrogh;

        for (int nowIdx = startIdxOfPassThrogh + 1; nowIdx < orderedArrList.size(); nowIdx++) {
            if (orderedArrList.get(nowIdx) < orderedArrList.get(minmumValueIdx))
                minmumValueIdx = nowIdx;
        }

        if (startIdxOfPassThrogh != minmumValueIdx) {
            int temp = orderedArrList.get(minmumValueIdx);
            orderedArrList.set(minmumValueIdx, orderedArrList.get(startIdxOfPassThrogh));
            orderedArrList.set(startIdxOfPassThrogh, temp);
        }
    }

    return String.format("%d %d", orderedArrList.get(0), orderedArrList.get(orderedArrList.size()-1));
}