Algorithm
๋ฐฑ์ค - ํ์กฐ์์ด์ ๋ฆฌํ๊ณ ์ดใ ใ (Swift)
CheonD
2022. 11. 7. 14:22
๋ฐฑ์ค - ํ์กฐ์์ด์ ๋ฆฌํ๊ณ ์ดใ ใ (Swift)
๋ฌธ์ ์ค๋ช
https://www.acmicpc.net/problem/14659
14659๋ฒ: ํ์กฐ์์ด์ ๋ฆฌํ๊ณ ์ดใ ใ
์ฒซ์งธ ์ค์ ๋ด์ฐ๋ฆฌ์ ์ ๊ฒธ ํ์ก์ด์ ์ N์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 30,000) ๋์งธ ์ค์ N๊ฐ ๋ด์ฐ๋ฆฌ์ ๋์ด๊ฐ ์ผ์ชฝ ๋ด์ฐ๋ฆฌ๋ถํฐ ์์๋๋ก ์ฃผ์ด์ง๋ค. (1 ≤ ๋์ด ≤ 100,000) ๊ฐ๊ฐ ๋ด์ฐ๋ฆฌ์ ๋์ด๋ ์ค๋ณต ์์ด
www.acmicpc.net
๋์ ํ์ด
๋ฑ O(N)๋งํผ๋ง ๋๋ฉด ๋๋ ๊ฐ๋จํ ํ์ด๋ค.
import Foundation
let input = Int(readLine()!)!
let arr = readLine()!.components(separatedBy:" ").map{Int($0)!}
var maxCnt = 0
var cnt = 0
var cur = 0
for x in arr {
if cur < x {
cur = x
cnt = 0
} else {
cnt += 1
}
maxCnt = max(maxCnt, cnt)
}
print(maxCnt)