https://school.programmers.co.kr/learn/courses/30/lessons/12939?language=java
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
제한 조건
s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
입출력 예
s return
"1 2 3 4" "1 4"
"-1 -2 -3 -4" "-4 -1"
"-1 -1" "-1 -1"
문제 해결을 위한 과정
- 문자열 분리: s.split(" ")을 이용해 공백 문자 기준으로 숫자들을 잘라 배열에 담습니다.
- 데이터 타입 변환: 정렬과 크기 비교를 위해 문자열 배열을 순회하며 Integer.parseInt()로 숫자로 바꾼 뒤 ArrayList에 담아줍니다. (이 과정에서 음수 기호 -도 알아서 정수로 잘 변환됩니다.)
- 정렬: Collections.sort()를 사용해 오름차순으로 정렬합니다.
- 결과 조립: 정렬되었기 때문에 가장 첫 번째 값(index 0)이 최솟값, 가장 마지막 값(size - 1)이 최댓값이 됩니다. 이를 문자열로 이어 붙여 반환합니다.
소스코드
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
ArrayList<Integer> arr = new ArrayList<>();
String[] sarr = s.split(" ");
for(int i = 0; i < sarr.length; i++) {
arr.add(Integer.parseInt(sarr[i]));
}
Collections.sort(arr);
answer += String.valueOf(arr.get(0));
answer += " ";
answer += String.valueOf(arr.get(arr.size() - 1));
return answer;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
| 프로그래머스 최솟값 만들기 (Level2 Java) (0) | 2026.05.26 |
|---|---|
| 프로그래머스 JadenCase 문자열 만들기 (Level2 Java) (0) | 2026.05.20 |
| 프로그래머스 단어 변환 (Level3 Java) (0) | 2026.05.16 |
| 프로그래머스 게임 맵 최단거리(Level3 Java) (1) | 2026.05.12 |
| 프로그래머스 네트워크 (Level3 Java) (0) | 2026.05.11 |