https://school.programmers.co.kr/learn/courses/30/lessons/12939
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
- s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
"1 2 3 4" | "1 4" |
"-1 -2 -3 -4" | "-4 -1" |
"-1 -1" | "-1 -1" |
문제 이해
- 문자열로 주어지는 숫자들에 대해서 최댓값과 최솟값을 공백을 두고 출력하는 문제입니다.
- 최댓값과 최솟값을 구해야하므로, Math.min, Math.max 내장함수를 이용하며 이를 위해 정수형 변환 과정이 필요합니다.
- 입력 문자열을 공백을 기준으로 나눈 후 map 메소드를 통해서 각 문자를 정수형으로 바꿔줍니다.(비트 부정 연산자)
- 최댓값과 최솟값을 구할땐 Math.min(null, arr)이나 Math.min(Math, arr) 또는 Math.min(...arr)을 사용해줍니다. Math.min/max는 입력값으로 배열이 아닌 고유 변수를 받습니다. 따라서 변수를 null로 해주거나 ES6문법인 destructing 할당 문법을 통해 해결할 수 있습니다.
- 마지막으로 array.join(' '); 을 통해서 공백단위로 묶어줍니다.
코드
//프로그래머스 12939 최댓값과 최솟값
function solution(s) {
let arr = s.split(' ').map((i)=>~~i)
let answer = [Math.min(...arr), Math.max(...arr)];
return answer.join(' ')
}
//공백으로 구분돼서 들어옴 -> 일단 공백 기준으로 나눠야함.. 배열에 저장까지 할 수 있음.(split)
//배열에 저장된건 문자열일거임. 맵핑을 통해서 정수로 바꿔야함.
//최댓값, 최솟값 각각 출력. 최소값 , 최대값 순으로
자바스크립트 PS문제를 다시 풀고 있는데, 파이썬과 이름이 같은 메소드여도 적용방법이 달라서 조금 헷갈리는것 같습니다.
'알고리즘 풀이 > JS' 카테고리의 다른 글
[NodeJs] DFS와 BFS (백준 1260번 노드JS JavaScript 자바스크립트) (0) | 2023.11.22 |
---|---|
[Javascript] JadenCase 문자열 만들기 (프로그래머스 Lv2 자바스크립트) (0) | 2023.10.07 |
[JavaScript] 짝지어 제거하기 (프로그래머스 Lv2 자바스크립트) (0) | 2023.08.28 |
[JavaScript] 핸드폰 번호 가리기 (프로그래머스 Lv.1) (0) | 2023.07.27 |
[JavaScript] 나누어 떨어지는 숫자 배열 (프로그래머스 Lv.1) (1) | 2023.07.26 |