๐ ์ฝ๋ฉํ ์คํธ ๋ฌธ์ ํ์ด
โ๐ป ๋ฌธ์ ํ์ด github ๋งํฌ
๋ฌธ์ ์ค๋ช
H-Index๋ ๊ณผํ์์ ์์ฐ์ฑ๊ณผ ์ํฅ๋ ฅ์ ๋ํ๋ด๋ ์งํ์ ๋๋ค. ์ด๋ ๊ณผํ์์ H-Index๋ฅผ ๋ํ๋ด๋ ๊ฐ์ธ h๋ฅผ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค. ์ํค๋ฐฑ๊ณผ1์ ๋ฐ๋ฅด๋ฉด, H-Index๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํฉ๋๋ค.
์ด๋ค ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ nํธ ์ค, h๋ฒ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด hํธ ์ด์์ด๊ณ ๋๋จธ์ง ๋ ผ๋ฌธ์ด h๋ฒ ์ดํ ์ธ์ฉ๋์๋ค๋ฉด h์ ์ต๋๊ฐ์ด ์ด ๊ณผํ์์ H-Index์ ๋๋ค.
์ด๋ค ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ์ ์ธ์ฉ ํ์๋ฅผ ๋ด์ ๋ฐฐ์ด citations๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด ๊ณผํ์์ H-Index๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ์ ์๋ 1ํธ ์ด์ 1,000ํธ ์ดํ์ ๋๋ค.
- ๋ ผ๋ฌธ๋ณ ์ธ์ฉ ํ์๋ 0ํ ์ด์ 10,000ํ ์ดํ์ ๋๋ค.
์ ์ถ๋ ฅ ์
citations | return |
[3, 0, 6, 1, 5] | 3 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ด ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ์ ์๋ 5ํธ์ด๊ณ , ๊ทธ์ค 3ํธ์ ๋ ผ๋ฌธ์ 3ํ ์ด์ ์ธ์ฉ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋จธ์ง 2ํธ์ ๋ ผ๋ฌธ์ 3ํ ์ดํ ์ธ์ฉ๋์๊ธฐ ๋๋ฌธ์ ์ด ๊ณผํ์์ H-Index๋ 3์ ๋๋ค.
๋ฌธ์ ํ์ด
๋์ ํ์ด
import Foundation
func solution(_ citations:[Int]) -> Int {
var sortedCitations = citations.sorted(by: >)
for i in (0...sortedCitations[0]).reversed() {
if sortedCitations.filter{ $0 >= i }.count >= i {
return i
}
}
return 0
}
์ ๋ ฌ๋ถํฐ ํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด๋ค์๋ค. ์ฒ์์ ๋ฌธ์ ๋ฅผ ์๋ชป ์ดํดํด์ ๋ฐฐ์ด์์ ๋ค์ด์๋ ๋ ผ๋ฌธ์ ์ธ์ฉ๋ ๊ฐ์๋ก๋ง ๊ณ์ฐ์ ํ์๋๋ฐ, 2๊ฐ ๋นผ๊ณ ๋ค ํ๋ ธ๋ค. ๋ค์ ํ๋ฒ๋ ๊ผผ๊ผผํ ๋ฌธ์ ๋ฅผ ์ฝ์ด๋ณด๋ ๊ผญ ๋ ผ๋ฌธ์ ์ธ์ฉ๋ ๊ฐ์๊ฐ ์๋์๋ค.
๊ทธ๋์ ๋ ผ๋ฌธ์ ์ธ์ฉ ํ์ ์ค ์ต๋๊ฐ๋ถํฐ 0๊น์ง ์ฐจ๋ก๋๋ก ํ์ผ๋ฉฐ, ๋ ผ๋ฌธ์ ์ธ์ฉ ํ์๊ฐ ํ์ฌ์ ๋ ผ๋ฌธ์ ๊ฐ์๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๋ค๋ฉด ํด๋น ๊ฐ์ ์ถ๋ ฅํ๋๋ก ๋ก์ง์ ๊ตฌํํ๋ค.
์ฑ๊ณต์ ํ์์ง๋ง, ์๊ฐ์ด ๋๋ฌด ๋ง์ด ๋์ค๋ ๋ฏํด ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ์ดํด๋ณด์๋ค.
๋์ ํ์ด ( with. ๋ค๋ฅธ ์ฌ๋ ํ์ด ์ฐธ๊ณ )
์ด ๋ฌธ์ ๋ ๋ชจ๋ ๋ฐฐ์ด์ ๋๋ฉฐ ํด๋น i๋ณด๋ค ํฐ ๊ฐ์ ์ฐพ๋ ๊ฒ์ด ํต์ฌ์ด ์๋์๋ค.
๊ฐ์ฅ ๋ง์ด ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด 53๊ฐ๋ผ๊ณ ํ ๋, ๊ทธ๋ผ ์ด ๋ ผ๋ฌธ์ด ์ ๋ ฌํ๋ ์ฒซ๋ฒ์งธ ๋ ผ๋ฌธ์ด ๋๋ค. 1๋ฒ์งธ ๋ ผ๋ฌธ์ ์ธ์ฉ ํ์๊ฐ 1 ≤ 58 ์ด๋ฏ๋ก ๋ค์์ผ๋ก ๋์ด๊ฐ๋ค. ๋๋ฒ์งธ๋ก ๋ง์ด ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด 26๊ฐ๋ผ๊ณ ํ ๋, 2๋ฒ์งธ ๋ ผ๋ฌธ์ ์ธ์ฉ ํ์๊ฐ 2 ≤ 26๊ฐ ์ด๋ฏ๋ก ๋ค์์ผ๋ก ๋์ด๊ฐ๋ค. ์ธ๋ฒ์งธ๋ 20๊ฐ, 3 ≤ 20 ๋ค์! ๋ค๋ฒ์งธ, 13๊ฐ → 4 ≤ 13 ๋ค์, ๋ค์ฏ๋ฒ์งธ, 10 → 5 ≤ 10 ๋ค์, ์ฌ์ฏ๋ฒ์งธ, 4 → 6 > 4 ์ด๋ฏ๋ก ์ด ์ฌ๋์ h-index๋ 5๋ฒ์งธ์ด๋ค.
ํด๋น ๋ฐฐ์ด์ index ๊ฐ๋ณด๋ค ์ธ์ฉํ์๊ฐ ํฐ์ง ์ํฐ์ง๋ฅผ ํ๋จํ์ฌ ํด๋น h-index๋ฅผ ์ฐ์ถํ๋ ๋ฐฉ์์ด ๊ฐ์ฅ ํจ์จ์ ์ด๋ค.
๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ฅผ ์ฐธ๊ณ ํ์ฌ ๋ค์ ํ๋ฒ ํ์ด๋ณด์.
import Foundation
func solution(_ citations:[Int]) -> Int {
var sortedCitations = citations.sorted(by: >)
for (i, count) in sortedCitations.enumerated() {
if i+1 <= count {
continue
}else {
return i
}
}
return citations.count
}
์๊ฐ์ด ํ ์ผ์ฌ ๋น ๋ฅด๋ค!