Where who wants to meet someone
빈 배열에 추가, 삭제하기 본문
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/181860
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 답안 / 다른 사람들의 답안
import Foundation
func solution(_ arr:[Int], _ flag:[Bool]) -> [Int] {
var result = [Int]()
for i in flag.indices {
if flag[i] == true {
result.append(contentsOf: Array(repeating: arr[i], count: arr[i] * 2))
} else {
result = Array(result.prefix(result.count - arr[i]))
}
}
return result
}
- flag[i]가 true라면 arr[i] * 2만큼 arr[i]를 반복한 배열을 추가해주고, false라면 그 수만큼 뺀 값으로 치환(prefix)
// 풀이 1
import Foundation
func solution(_ arr:[Int], _ flag:[Bool]) -> [Int] {
var x = [Int]()
for i in 0..<arr.count {
if flag[i] {
for _ in 0..<arr[i]*2{
x.append(arr[i])
}
} else {
for _ in 0..<arr[i]{
x.removeLast()
}
}
}
return x
}
// 풀이 2
import Foundation
func solution(_ arr: [Int], _ flag: [Bool]) -> [Int] {
var result: [Int] = []
for i in 0..<flag.count {
if flag[i] {
for _ in 0..<arr[i] * 2 {
result.append(arr[i])
}
} else {
for _ in 0..<arr[i] {
result.removeLast()
}
}
}
return result
}
점수: +2
'프로그래머스 알고리즘 문제 기록 > 코딩 기초 트레이닝' 카테고리의 다른 글
배열의 길이를 2의 거듭제곱으로 만들기 (0) | 2024.02.08 |
---|---|
날짜 비교하기 (0) | 2024.02.08 |
이차원 배열 대각선 순회하기 (0) | 2024.02.01 |
문자열 잘라서 정렬하기 (0) | 2024.02.01 |
간단한 식 계산하기 (0) | 2024.02.01 |