Where who wants to meet someone
배열 조각하기 본문
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 |