한 걸음씩
[프로그래머스][JS] 수열과 구간 쿼리 3 본문
https://school.programmers.co.kr/learn/courses/30/lessons/181924
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이 과정
function solution(arr, queries) {
let result = arr.slice()
for (let i = 0; i < queries.length; i++){
let [s, e] = queries[i]
// swap 서로의 값을 바꾸기 위해서 임의의 변수 temp생성
let temp = result[s]
result[s] = result[e]
result[e] = temp
// console.log(result)
}
return result;
}
// [ 3, 1, 2, 0, 4 ]
// [ 3, 2, 1, 0, 4 ]
// [ 3, 4, 1, 0, 2 ]
수열과 구간 쿼리 1 문제와 비슷한데 3문제는 swap 하는 문제이다.
a = 1
b = 2 가 있고 a, b의 값을 바꾸려고 할 때, 임의의 변수 c를 생성하고 a의 값을 담아줘야 한다
c = a
그러면 c에 a가 할당되어 있으니까 a변수에 b를 할당할 수 있게 되고 b변수에 a값을 가진 c 변수를 할당하면 된다.
리뷰
이것도 어떻게 구현해야 할지 한참 고민했는데 단순하게 생각할수록 빨리 풀 수 있는 것 같다.
function solution(arr, queries) {
queries.forEach( ([a,b]) => { // 요소가 하나씩 나오도록
[arr[a],arr[b]] = [arr[b],arr[a]]; // swap
})
return arr;
}
방법은 다르지만 훨씬 깔끔해서 배울게 있는 코드라서 들고왔다
'Programmers' 카테고리의 다른 글
[프로그래머스][JS] 숨어있는 숫자의 덧셈 (2) (0) | 2023.06.07 |
---|---|
[프로그래머스][JS] 수박수박수박수박수박수? (0) | 2023.06.07 |
[프로그래머스][JS] 수열과 구간 쿼리 1 ✅ (0) | 2023.06.06 |
[프로그래머스][JS] 수 조작하기 2 (0) | 2023.06.05 |
[프로그래머스][JS] 가까운 수 ✅ (0) | 2023.06.05 |