250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- swift dfs
- swift 알고리즘
- swift 연속된 부분 수열의 합
- swift 프로그래머스
- swift gRPC
- MVVM
- swift ac
- swift 9095 풀이
- 123 더하기 풀이
- ios
- 1 2 3 더하기 풀이
- 백준 2xn 타일링 풀이
- swift ac 문제풀이
- swift ac 풀이
- 연속된 부분 수열의 합 투포인터
- ac 구현 풀이
- swift codility
- ac swift 풀이
- swift 2xn 타일링 백준
- iOS Charts
- swift
- swift 2xn 타일링
- swift 백준 9095
- rxswift
- swift 연속된 부분 수열의 합 풀이
- 연속된 부분 수열의 합 swift
- swift 2xn 타일링 풀이
- swift algorithm
- ac 투포인터
- 백준 2xn 타일링
Archives
- Today
- Total
boraBong
[Swift] MaxCounters 문제 풀이 [Codility - Lesson4. Counting Elements] 본문
iOS/Algorithm
[Swift] MaxCounters 문제 풀이 [Codility - Lesson4. Counting Elements]
보라봉_ 2023. 3. 28. 19:09728x90
💬 문제
https://app.codility.com/programmers/lessons/4-counting_elements/max_counters/
💬 Idea
- maxCounter로 바꾸는 시점에서 Array(repeating:, count:) 메서드를 사용했더니 시간 초과가 발생했다.
- 해결 로직
- increase 로직: maxCounterValue보다 현재 counter가 작다면 counter를 maxCounterValue로 변경해주고 그 이후에 +1 작업을 수행
- maxcounter로 모두 변경 로직: 반복문 이후에 일괄 수행
💬 풀이
import Foundation
public func solution(N : Int, A : inout [Int]) -> [Int] {
var counter = Array(repeating: 0, count: N)
var maxCounter = 0
var maxCounterValue = 0
for a in A {
if a == N + 1 {
maxCounterValue = maxCounter
} else {
if counter[a - 1] < maxCounterValue {
counter[a - 1] = maxCounterValue
}
counter[a - 1] += 1
if maxCounter < counter[a - 1] {
maxCounter = counter[a - 1]
}
}
}
for i in 0..<counter.count {
if counter[i] < maxCounterValue {
counter[i] = maxCounterValue
}
}
return counter
}
시간 복잡도 : O(N + M)
https://app.codility.com/demo/results/trainingW968PA-XQX/
반응형
'iOS > Algorithm' 카테고리의 다른 글
[Swift] 타겟 넘버 문제 풀이 [Programmers - Level2 (DFS/BFS)] (0) | 2023.03.30 |
---|---|
[Swift] 단어 변환 문제 풀이 [Programmers - Level3 (DFS/BFS)] (0) | 2023.03.29 |
[Swift] FrogRiverOne 문제 풀이 [Codility - Lesson4. Counting Elements] (0) | 2023.03.28 |
[Swift] FloodDepth 문제 풀이 [Codility - Exercise 1. 2015 Contest] (0) | 2023.03.28 |
[Swift] GenomicRangeQuery 문제 풀이 [Codility - Lesson5. Prefix Sums] (0) | 2023.03.28 |
Comments