띄어쓰기로 각 숫자를 구분한 문자열이 들어올 때 해당 문자열에서 최댓값과 최소값을 리턴하는 문제이다.
먼저 작성한 코드
function solution(s) {
let numArr = s.split(' ').sort((a,b) => a-b)
let positiveNum = []
let negativeNum = []
numArr.map((num) => Number(num)>0 ? positiveNum.push(Number(num)) : negativeNum.push(Number(num)) )
if (positiveNum.length === 0) {
return [negativeNum[0], negativeNum[negativeNum.length-1]].join(' ')
}
if (negativeNum.length === 0) {
return [positiveNum[0], positiveNum[positiveNum.length-1]].join(' ')
}
return [negativeNum[0], positiveNum[positiveNum.length-1]].join(' ')
}
음수와 양수를 구분하여 한쪽의 길이가 0일때를 예외처리하여 풀이했다. 푸는도중 이럴필요가 있나 싶었다.
다음으로 작성한 코드
function solution(s) {
let numArr = s.split(' ').sort((a,b) => a-b)
return [numArr[0], numArr[numArr.length-1]].join(' ')
}
문자열인 숫자도 sort메서드에서 정렬가능하기 때문에 굳이 음양을 나눠줄 필요는 없다.
마지막으로 작성한 코드
function solution(s) {
let numArr = s.split(' ')
return Math.min(...numArr) + ' ' + Math.max(...numArr)
}
Math.min과 Math.max를 사용하면 굳이 sort메서드를 사용해 정렬할 필요가 없어진다.
'2차 공부 > 알고리즘' 카테고리의 다른 글
이진 변환 반복하기 (0) | 2024.07.09 |
---|---|
JadenCase 문자열 만들기 (0) | 2024.07.08 |
신고 결과 받기 (0) | 2024.07.04 |
공원 산책 (0) | 2024.07.03 |
달리기 경주 (0) | 2024.07.02 |