Reveal Cards In Increasing Order

Sett·2021년 7월 28일
1

문제

https://leetcode.com/problems/reveal-cards-in-increasing-order/

문제 접근

  1. 첨에는 오름차순?으로 정렬 후 반으로 쪼개서 하나씩 빼서 넣으려고 함.
  2. 근데 아무리 봐도 아닌 거임. Output이 [2,13,3,11,5,17,7] 이게 아닌 [2,11,3,13,5,17,7] 이거라면 모를까...
  3. 근데 Example 1을 보니까 다 만들고 나서 첫 번째 인덱스 값 빼고 그 다음 값 제일 뒤로 보내고, 이걸 반복함
  4. 그래서 제일 뒤로 보내고 인덱스값 넣고를 하면 되지 않을까!? 했는 데, 제일 처음에 17이 들어오는 거임?
  5. 그래서 내림차순?으로 정렬하고 Example에서 설명하는 로직 그대로 써서 해결함.

소스코드

func deckRevealedIncreasing(_ deck: [Int]) -> [Int] {
    var copydeck = deck
    copydeck.sort(by: >)
    var result: [Int] = []
    for _ in 0..<copydeck.count {
        if result.count == 0 {
            result.append(copydeck.removeFirst())
        }
        else {
            let last = result.removeLast()
            result.insert(last, at: 0)
            result.insert(copydeck.removeFirst(), at: 0)
        }
    }
    return result
}
profile
안녕하세요

0개의 댓글

관련 채용 정보