728x90
반응형
사용언어 : JAVA
https://programmers.co.kr/learn/courses/30/lessons/12939
코딩테스트 연습 - 최댓값과 최솟값
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를
programmers.co.kr
문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
나의 코드
//최댓값과 최솟값
import java.util.*;
public class MaximumAndMinimum {
class Solution {
public String solution(String s) {
String answer = "";
String[] tmp = s.split(" "); //문자열 split
int[] arr = new int[tmp.length]; //int 배열 만들기
for(int i=0; i<tmp.length; i++){ //arr 배열에 담기
arr[i] = Integer.parseInt(tmp[i]);
}
Arrays.sort(arr); //오름차순 정렬
//맨 앞에 있는 값과 맨 뒤에 값 넣기
answer += Integer.toString(arr[0]) + " " +Integer.toString(arr[arr.length-1]);
return answer;
}
}
}
입출력 예
s | return |
"1 2 3 4" | "1 4" |
"-1 -2 -3 -4" | "-4 -1" |
"-1 -1" | "-1 -1" |
코드설명
내가 생각했을 때 쉽게 풀 수 있는 방법은 수를 오름차순 하는 방법이라 생각했다.
따라서 문자열로 받은 값을 공백으로 split 하여 배열에 담고, 담은 값을 새로운 int 배열에 반복문을 통해 값을 담았다.
담은 배열을 오름차순으로 정렬 시켰다.
오름차순으로 정렬하면 항상 제일 작은 수는 맨 앞에 제일 큰 수는 맨 뒤에 있기 때문에
answer에 첫번째 배열과 마지막 배열을 가운데 공백을 넣어 담아 리턴 시켰다.
728x90
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 숫자의 표현 (0) | 2022.09.24 |
---|---|
[프로그래머스] 피보나치 수 문자열 만들기 (0) | 2022.01.11 |
[프로그래머스] JadenCase 문자열 만들기 (0) | 2021.12.13 |
[프로그래머스] 최솟값 만들기 (0) | 2021.11.14 |
[프로그래머스] 실패율 (0) | 2021.10.25 |