이 글은 문제를 정리하고 저의 풀이를 보여드리는 거예요. 실제로 문제를 보고 풀어보세요. 클릭! 클릭! 해보세요! 🖱️
- 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다.
- 문자열 s에 나타나는 숫자 중 최소값과 최대값을 찾아
- 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
- 문자열 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
String[] array
로 대입String[] array = s.split(" ")
String[] array
를 ArrayList<Integer> orderedArrList
로 대입for(String num : array) orderedArrList.add(Integer.parseInt(num))
for
문 2개로 선택정렬 구현for
문 == 패스스루인덱스0
에서 마지막인덱스 바로 전
까지 orderedArrList.size()-2
for(int startIdxOfPassThrogh=0; startIdxOfPassThrogh<orderedArrList.size()-1; startIdxOfPassThrogh++)
최솟값의 인덱스-minmumValueIdx
를 패스스루의 시작인덱스-startIdxOfPassThrogh
로 초기화 시킨다.minmumValueIdx = startIdxOfPassThrogh
for
문 == 현재 최솟값과 각각의 값들을 비교하여 최종 최솟값을 정한다패스스루의 시작인덱스-startIdxOfPassThrogh의 바로 다음 인덱스
부터 마지막 인덱스
까지for(nowIdx=startIdxOfPassThrogh+1; nowIdx<orderedArrList.size(); nowIdx++)
if(orderedArrList[nowIdx]<orderedArrList[minmumValueIdx]) minmumValueIdx = nowIdx
for
문이 끝나면 패스스루의 시작인덱스-startIdxOfPassThrogh
와 패스스루에서 최종적으로 결정된 최솟값의 인덱스-minmumValueIdx
를 교환한다.if(startIdxOfPassThrogh != minmumValueIdx)
int temp = orderedArrList[minmumValueIdx]
orderedArrList[minmumValueIdx] = orderedArrList[startIdxOfPassThrogh]
orderedArrList[startIdxOfPassThrogh] = temp
for
문이 끝나면 최소값과 최대값을 "(최소값) (최대값)"형태의 문자열로 반환한다.return String.format("%d %d", orderedArrList.get(0), orderedArrList.get(orderedArrList.size()-1))
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));
}
필요한 패키지 임포트를 하지 않았기 때문입니다!