[프로그래머스] LV0. 수열과 구간 쿼리 3

윤인경·2023년 8월 6일
0

코딩테스트

목록 보기
31/38
post-thumbnail

문제 설명

정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [i, j] 꼴입니다.

query마다 순서대로 arr[i]의 값과 arr[j]의 값을 서로 바꿉니다.

위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.

제한사항

  • 1 ≤ arr의 길이 ≤ 1,000
    • 0 ≤ arr의 원소 ≤ 1,000,000
  • 1 ≤ queries의 길이 ≤ 1,000
    • 0 ≤ i < j < arr의 길이

입출력 예

arrqueriesresult
[0, 1, 2, 3, 4][[0, 3],[1, 2],[1, 4]][3, 4, 1, 0, 2]

입출력 예 설명
입출력 예 #1

  • 각 쿼리에 따라 arr가 다음과 같이 변합니다.
arr
[0, 1, 2, 3, 4]
[3, 1, 2, 0, 4]
[3, 2, 1, 0, 4]
[3, 4, 1, 0, 2]
  • 따라서 [3, 4, 1, 0, 2]를 return 합니다.

내가 작성한 코드

def solution(arr, queries):
    for i in queries:
        sw = arr[i[0]]
        arr[i[0]] = arr[i[1]]
        arr[i[1]] = sw
    return arr

코드 간단 소개

  • for문으로 queries를 돈다.
  • sw 에 i에 해당하는 arr 값을 담는다. arr[i[0]]
  • arr[i[0]]에 j에 해당하는 arr값을 넣는다. arr[i[1]]
  • arr[i[1]]에 i에 해당하는 값을 저장한 sw를 넣는다.

다른 사람 풀이

def solution(arr, queries):
    for a,b in queries:
        arr[a],arr[b]=arr[b],arr[a]
    return arr
  • for문으로 queries를 돌 때 query의 각 값을 a, b로 넣는다.
  • arr[a], arr[b] = arr[b], arr[a]로 작성하여 arr[a]에 arr[b]를, arr[b]에 arr[a]를 넣는다.
profile
코딩 공부 및 프로젝트 정리

0개의 댓글