728x90
안녕하세요 코코종입니다.
이전에 풀었던 문제지만 다시 풀었습니다. 확실히 이전에는 구현에 어려움을 조큼... 겪었는데 조금 연습했다고 익숙해졌나보네요 쿠쿠쿠...
import Foundation
func solution(_ progresses:[Int], _ speeds:[Int]) -> [Int] {
var answer: [Int] = []
var progresses: [Int] = progresses // queue처럼 사용
var speeds: [Int] = speeds // queue 처럼 사용
while !progresses.isEmpty {
for i in 0..<progresses.count {
progresses[i] += speeds[i]
}
var result = 0 // 하루에 배포되는 갯수
// 100 이상이라면 두개 모드 removeFirst 해주고 result += 1
while progresses.first ?? 0 >= 100 {
progresses.removeFirst()
speeds.removeFirst()
result += 1
}
if result > 0 { answer.append(result) }
// print("progresses", progresses)
}
return answer
}
저는 progresses와 speeds를 queue처럼 쓰기위해 var로 한번 다시 선언해줬구요.
모든 기능 개발이 끝나는 시점이기에 isEmpty를 활용해 while문을 구성했습니다.
하루하루 지나서 맨 앞에 있는 기능의 진행도가 100이상이면 배포가 되며 그 뒤에 100인 녀석들의 갯수를 세어서 result에 저장 후 1이상일때만 answer에 append를 해줍니다.
728x90
'알고리즘' 카테고리의 다른 글
[Swift 알고리즘] 프로그래머스 - 다리를 지나는 트럭 (0) | 2023.05.06 |
---|---|
[Swift 알고리즘] 프로그래머스 - 의상 (0) | 2023.05.05 |
[Swift 알고리즘] 프로그래머스 - 예상 대진표 (0) | 2023.05.04 |
[Swift 알고리즘] 프로그래머스 - 영어 끝말잇기 (0) | 2023.05.04 |
[Swift 알고리즘] 프로그래머스 - 배달 (0) | 2023.05.02 |