Develop
[프로그래머스] 수열과 구간 쿼리3 본문
문제
내풀이
class Solution {
public int[] solution(int[] arr, int[][] queries) {
int one = 0;
// queries의 길이만큼 반복
for(int i=0; i < queries.length ;i++){
one = arr[queries[i][0]];
arr[queries[i][0]] = arr[queries[i][1]];
arr[queries[i][1]] = one;
}
return arr;
}
}
다른풀이
(*주의 return type이 문제에서 원하는 return type이랑 다름)
import java.util.*;
import java.util.stream.Collectors;
class Solution {
public List<Integer> solution(int[] arr, int[][] queries) {
List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
for (int[] query : queries) {
Collections.swap(list, query[0], query[1]);
}
return list;
}
}
느낀점
stream으로 코드를 짜려고 했으나...실패..
정확히는 stream으로 짜는 것이 더 코드가 길고 노가다성으로 원하는 값을 쭉 모은 다음 하나씩 가져와야 하므로
비효율적이라 판단하였다
그러고 다른 풀이를 보았더니 역시나 stream을 이용하여 작성한 코드는 없었다
앞으로는 stream으로 구현가능한지 가능여부를 확인하는 눈도 길러야겠다
'개인 공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 간단한 논리 연산 (0) | 2024.02.04 |
---|---|
[프로그래머스] rny_string (0) | 2024.02.02 |
[프로그래머스] 문자열로 변환 (int -> String 변환 방법 3가지) (0) | 2024.01.28 |
[프로그래머스] Error :: bad return type in lambda expression (0) | 2024.01.27 |
[프로그래머스] 수열과 구간 쿼리2 (1) | 2024.01.27 |