[Programmers] #181924 - 수열과 구간 쿼리 3 [Java][C++][Python]
쿼리마다 지정된 두 인덱스의 원소를 서로 바꾸는 워밍업 문제.
[Programmers] #181924 - 수열과 구간 쿼리 3 [Java][C++][Python]
1. 아이디어
각 쿼리는 두 인덱스로 이루어져 있고, 두 인덱스에 해당하는 arr의 원소를 서로 바꾸면 된다. 쿼리 개수만큼 반복하면서 두 위치를 스왑하면 끝나는 간단한 구현 문제다.
2. 복잡도
| 접근 | 시간 | 공간 |
|---|---|---|
| 풀이 | $O(Q)$ | $O(1)$ |
($Q$ = queries의 길이)
3. 코드
풀이 [Java][C++][Python]
1
2
3
4
5
6
7
8
9
10
11
class Solution {
public int[] solution(int[] arr, int[][] queries) {
for (int[] q : queries) {
int tmp = arr[q[0]];
arr[q[0]] = arr[q[1]];
arr[q[1]] = tmp;
}
return arr;
}
}
1
2
3
4
5
6
7
8
9
10
#include <bits/stdc++.h>
using namespace std;
vector<int> solution(vector<int> arr, vector<vector<int>> queries) {
for (auto& q : queries) {
swap(arr[q[0]], arr[q[1]]);
}
return arr;
}
1
2
3
4
5
def solution(arr, queries):
for a, b in queries:
arr[a], arr[b] = arr[b], arr[a]
return arr
This post is licensed under CC BY 4.0 by the author.