2022. 10. 11. 15:31ใํ๋ก๊ทธ๋๋จธ์ค-Swift
ํ๋ก๊ทธ๋๋จธ์ค - h-Index(Swift)
๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/42747
๋์ ํ์ด
0๋ถํฐ arr.count๊น์ง h-index๊ฐ ๋ ์ ์๋ ์๋ค์ ํ์ํ๋ฉด์ filter๊ฐ์ผ๋ก maxIdx๋ฅผ ๊ณ์ ๋ณํ๋ฅผ ์์ผฐ๋ค.
ํ์ง๋ง ์ด ํ์ด๋ ๋ฌธ์ ์กฐ๊ฑด์ด ์ปค์ง๋ฉด ์คํจํ๋ ํ์ด๊ธฐ์ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ์ข ๋ ํจ์จ์ ์ธ ๊ฒ์ ์ฐพ์๋ค.
import Foundation
func solution(_ citations:[Int]) -> Int {
var arr = citations.sorted(by: <)
var maxIdx = 0
for x in Array(0...arr.count) {
let upperIdx = arr.filter{ $0 >= x }.count
let lowerIdx = arr.filter{ $0 < x }.count
if upperIdx >= x && lowerIdx <= x {
maxIdx = x
}
}
return maxIdx
}
๋ค๋ฅธ ์ฌ๋์ ํ์ด
ํ์ด๋ฅผ ์ดํดํ๋๋ฐ ์กฐ๊ธ ์๊ฐ์ด ๊ฑธ๋ ธ์ง๋ง ํ ๋ฒ ์ดํดํ๋ฉด ์ข์ ํ์ด๋ผ๋ ๊ฑธ ์ ์ ์๋ค.
๋จผ์ ๋ฌธ์ ์ ์์์ธ [0, 1, 3, 5, 6]์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํด๋ณด์. -> [6, 5, 3, 1, 0]
์ธ๋ฑ์ค๋ฅผ 1์ฉ ์ฆ๊ฐ์ํฌ ๊ฒ์ธ๋ฐ ์ด๋ ์ธ๋ฑ์ค๋ h-index์ด๋ค.
์ฒซ๋ฒ์งธ๋ก h-index๊ฐ 1์ผ๋ ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ๊ฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค๋ฉด h-index๋ฅผ 1๋ก ์ค์ ํ ์ ์๋ค. ์๋ํ๋ฉด ๋ฌธ์ ๋ h๋ฒ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ ์๊ฐ h๊ฐ ์ด์์ด๊ณ , ๋๋จธ์ง ๋ ผ๋ฌธ์ด h๋ฒ ์ดํ ์ธ์ฉ์ด ๋๋ ๊ฒ์ธ๋ฐ, ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์์ธ 6์ 1๋ฒ์ด์ ์ธ์ฉ๋๋ฉด์ 1๊ฐ์ด์์ด๊ณ ๋๋จธ์ง ๋ ผ๋ฌธ๋ค์ 1๋ฒ ์ดํ๋ก ์ธ์ฉ์ด ๋์๊ธฐ ๋๋ฌธ์ด๋ค.
๋๋ฒ์งธ๋ฅผ ๋ณด๋ฉด h-index๊ฐ 2์ผ๋ ๋ฐฐ์ด์ ์์์ธ 5์ ๋น๊ตํ๊ฒ๋๊ณ ์ด ๋ํ 2๋ฒ์ด์ ์ธ์ฉ๋ ๊ฒ์ด 2๊ฐ ์ด์์ด๊ธฐ ๋๋ฌธ์(์ฒ์ 6์ธ ์์๊ฐ 1๊ฐ ์ด๋ฒ์ ์ฒดํฌํ ๊ฒ ํฌํจํด์ 2๊ฐ) h-index๊ฐ 2๊ฐ ๋๋ค.
๋๋จธ์ง ๋ ผ๋ฌธ์ด h๋ฒ ์ดํ ์ธ์ฉ๋์๋ค๋ฉด์ ์กฐ๊ฑด์ ์ต๋๊ฐ์ ์ฐพ์ ํ์ ๋๋จธ์ง ๋ ผ๋ฌธ๋ค์ ์์ฐ์ค๋ฝ๊ฒ h๋ฒ ์ดํ์ ๋ ผ๋ฌธ๋ค๋ง ๋ด๊ธฐ๊ธฐ ๋๋ฌธ์ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๋ค.
์ด๋ฅผ ๋ฐ๋ณตํ๋ฉด์ ๋ฐฐ์ด์ ํ์ฌ ๊ฐ๊ณผ ์ฆ๊ฐํ๋ index๊ฐ์ ๋น๊ตํ๋ฉด์ ๋ฐฐ์ด์ ๊ฐ์ด ์์์ง๋ ์์ ์ด h-index์ ์ต๋๊ฐ์ด ๋๋ค.
import Foundation
func solution(_ citations:[Int]) -> Int {
var citations = citations.sorted(by: >)
var result = 0
for i in 0..<citations.count {
//์ด if๋ฌธ์ด ์ฐธ์ด๋ผ๋ฉด ํ์ฌ h๋ฒ ์ด์ ์ธ์ฉ๋ ๋
ผ๋ฌธ์ด hํธ ์ด์์ธ ๊ฒ
if i+1 <= citations[i] {
result = i+1
}else {
break
}
}
return result
}
ํผ๋๋ฐฑ
์ฆ๊ฐํ๋ ์ธ๋ฑ์ค = ๋ ผ๋ฌธ์ ์ธ์ฉ๋ ๊ฐ์๋ก ๋ฌธ์ ๋ฅผ ๋ง๋๋ ๊ฒ์ด ํต์ฌ
'ํ๋ก๊ทธ๋๋จธ์ค-Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ๊ดํธ ํ์ ํ๊ธฐ (0) | 2022.10.12 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ ฌ์ ๊ณฑ์ (Swift) (0) | 2022.10.12 |
์บ์ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (0) | 2022.10.11 |
ํ๋ก๊ทธ๋๋จธ์ค - ์ ํ์ ์๊ฐ ์ด๋(Swift) (0) | 2022.10.11 |
๋ฉ๋ฆฌ ๋ฐ๊ธฐ - ํ๋ก๊ทธ๋๋จธ์ค(Swift) (0) | 2022.10.11 |