728x90
반응형
programmers.co.kr/learn/courses/30/lessons/42889
안녕하세요! 후르륵짭짭 입니다.
오늘은 실패율이라는 문제를 가져왔습니다.
어려운 문제는 아닌데, 새롭게 알게 된 사실이 있어서 올립니다...
실패율을 보니,,, 저의 코딩 테스트와 채용 실패율을 보는거 같네요 ㅠㅠ 눈물,,,,
(참고로 부끄럽지만,,, 오늘 쏘카 코딩 테스트 불합격 통보를 받았습니다... 3문제 중에 2문제를 풀었는데,,, 전 선택 받지 못 했습니다 ㅠㅠ)
일단 저의 코드는 아래와 같습니다.
func solution(_ N:Int, _ stages:[Int]) -> [Int] {
var ranking :[(rate : Double , index : Int)] = []
let sortedStages = stages.sorted(by: <)
var cnt : Int = 0
var index = 0
for stage in 1...N{
while index < sortedStages.count && stage >= sortedStages[index]{
cnt += 1
index += 1
}
ranking.append((rate: Double(cnt) / Double(cnt + sortedStages.count - index ), index: stage))
cnt = 0
}
ranking = ranking.sorted(by: { (element1, element2) -> Bool in
if element1.rate == element2.rate {
return element1.index < element2.index
}
return element1.rate > element2.rate
})
return ranking.map { (element) -> Int in
return element.index
}
}
해결 방법은 일단 각 스테이지를 정렬하고 각 스테이지별 실패율을 구합니다.
그리고 나서 rate를 기준으로 내림차순으로 정렬을 하고 마지막에 ranking.map을 해서 결과를 반환해줍니다.
** 새롭게 알게된 사실 **
소수점을 구하기 위해서 처음에는
Double(1/8)
이렇게 해줬는데,, 계속 0이 나왔습니다....
그래서 혹시 몰라서
Double(1)/Double(8)
이렇게 해줬더니, 소수로 결과가 나왔습니다.
간단하지만 몰랐던 사실 ㅎㅎㅎㅎ 여기에 적어둡니다 ㅠㅠ
언제쯤 저는 코테에 합격 할 수 있을까요 ㅠㅠ
728x90
반응형
'Xcode > Swift - Algorithm' 카테고리의 다른 글
Swift) LeetCode(Easy) - Valid Palindrome II (String) (0) | 2020.08.27 |
---|---|
Swift ) 프로그래머스(Lv1) - [1차] 다트 게임 (RegularExpression&Split) (0) | 2020.08.27 |
Swift) 프로그래머스(Lv1) - [1차] 비밀지도 (String) (0) | 2020.08.23 |
Swift) LeetCode(Easy) - Word-Pattern (Hash&String) (0) | 2020.08.20 |
Swift) LeetCode(Easy) - Symmetric Tree (BFS&Recursive) (0) | 2020.08.18 |
댓글