Where who wants to meet someone

배열 조각하기 본문

프로그래머스 알고리즘 문제 기록/코딩 기초 트레이닝

배열 조각하기

Lust3r 2024. 1. 23. 13:48
728x90

문제

https://school.programmers.co.kr/learn/courses/30/lessons/181893

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

내 답안 / 다른 사람들의 답안

import Foundation

func solution(_ arr:[Int], _ query:[Int]) -> [Int] {
    var arr = arr

    for i in query.indices {
        arr = i % 2 == 0 ? Array(arr[...query[i]]) : Array(arr[query[i]...])
    }

    return arr
}

- query의 각 항목을 가지고 해당 항목이 query에서의 인덱스가 짝수이면 arr의 해당 인덱스 값 이후는 버리고, 홀수라면 인덱스 값 이전은 버리는 방식으로 진행

- 문제를 풀면서 오류가 났던 부분
  1) query의 각 값의 인덱스를 가지고 짝수 여부 판단을 해야 하는데 값으로 했던 것
  2) query에 똑같은 값이 있는 경우를 고려하지 못한 것(인덱스 짝수 여부 판단할 때 firstIndex를 사용)

 

import Foundation

func solution(_ arr:[Int], _ query:[Int]) -> [Int] {
    var left = 0, right = arr.count - 1
    query.enumerated().forEach { 
        if $0.offset % 2 == 0 { right = left + $0.element } 
        else { left += $0.element }
    }
    let arr = Array(arr[left..<right])
    return arr.isEmpty ? [-1] : arr
}

 

점수: +10

'프로그래머스 알고리즘 문제 기록 > 코딩 기초 트레이닝' 카테고리의 다른 글

순서 바꾸기  (0) 2024.01.23
n 번째 원소부터  (1) 2024.01.23
2의 영역  (0) 2024.01.23
배열 만들기 3  (0) 2024.01.23
첫 번째로 나오는 음수  (0) 2024.01.23