반응형
문제 : 최댓값과 최솟값
문제 설명
문자열 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" |
해답 및 해설
파이썬 (Python)
def solution(s):
s_list = list(map(int,s.split(' ')))
answer = f'{min(s_list)} {max(s_list)}'
return answer
split 메서드로 나누어 준 후, 리스트 안의 문자를 숫자로 변환시켜줬다. 그 후 max(), min() 함수로 최댓값과 최솟값을 구해주었다.
자바스크립트 (Javascript)
function solution(s) {
var newS = s.split(" ").map(Number).sort((a,b)=>(a-b));
var answer = `${newS[0]} ${newS[newS.length-1]}`;
return answer;
}
split 메서드로 나눠준 후, map으로 숫자로 바꾼 후, sort 메서드로 크기순 배열을 하였으나, 중간의 map은 자바스크립트라서 필요 없는 것이었다. (자바스크립트에서는 숫자로 된 문자를 빼면 그대로 계산되어 나오므로)
function solution(s) {
return Math.min(...s.split(' ')) + ' ' + Math.max(...s.split(' '));
}
다른 풀이법으로 이렇게 더 간단한 풀이법이 있었다. Math.max와 Math.min은 주어진 변수들 중에서 최대, 최솟값을 찾는다. 배열 변수 앞의 ...은 Spread Operator(전개 연산자)로, 객체나 배열을 하나씩 꺼내어 펼쳐서 리턴한다. 파이썬의 *과 비슷해보인다.
반응형
'🖥️ 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv2 - H-Index (0) | 2022.09.26 |
---|---|
[프로그래머스] Lv2 - 숫자의 표현 (0) | 2022.09.24 |
[프로그래머스] Lv2 - 올바른 괄호 (0) | 2022.09.24 |
[프로그래머스] Lv2 - 이진 변환 반복하기 (0) | 2022.09.24 |
[프로그래머스] Lv2 - JadenCase 문자열 만들기 (0) | 2022.09.22 |
댓글