[백준 7570] 줄 세우기

Junyoung Park·2022년 6월 1일
0

코딩테스트

목록 보기
452/631
post-thumbnail

1. 문제 설명

줄 세우기

2. 문제 분석

원래 있어야 하는 인덱스를 정렬되지 않은 값에 기록, 인접한 수(아이들의 키)가 정렬되어 있다면 그럴 필요 없다.

3. 나의 풀이

import Foundation

let N = Int(String(readLine()!))!
let kids = [0] + Array(readLine()!.split(separator: " ").map{Int(String($0))!})
var indices = Array(repeating: 0, count: N+1)
for idx in 1..<N+1 {
    indices[kids[idx]] = idx
}

var cnt = 0
var answer = 0

for idx in 1..<N {
    if indices[idx] < indices[idx+1] {
        cnt += 1
        answer = max(cnt, answer)
    } else {
        cnt = 0
    }
}

print(N-answer-1)
profile
JUST DO IT

0개의 댓글