[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][Python] H-index

๋ฌธ์ œ ์„ค๋ช… 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ํšŒ ์ดํ•˜์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ citationsretu..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][Python] ๊ฐ€์žฅ ํฐ ์ˆ˜

๋ฌธ์ œ ์„ค๋ช… 0 ๋˜๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ •์ˆ˜๋ฅผ ์ด์–ด ๋ถ™์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์•Œ์•„๋‚ด ์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์–ด์ง„ ์ •์ˆ˜๊ฐ€ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์ด์ค‘ ๊ฐ€์žฅ ํฐ ์ˆ˜๋Š” 6210์ž…๋‹ˆ๋‹ค. 0 ๋˜๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numbers๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ˆœ์„œ๋ฅผ ์žฌ๋ฐฐ์น˜ํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์–ด return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ ์‚ฌํ•ญ numbers์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 100,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค. numbers์˜ ์›์†Œ๋Š” 0 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค. ์ •๋‹ต์ด ๋„ˆ๋ฌด ํด ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์–ด return ํ•ฉ๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ numbersreturn [6, 10, 2..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][Python] ์†Œ์ˆ˜์ฐพ๊ธฐ

๋ฌธ์ œ ์„ค๋ช… ํ•œ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ์ ํžŒ ์ข…์ด ์กฐ๊ฐ์ด ํฉ์–ด์ ธ์žˆ์Šต๋‹ˆ๋‹ค. ํฉ์–ด์ง„ ์ข…์ด ์กฐ๊ฐ์„ ๋ถ™์—ฌ ์†Œ์ˆ˜๋ฅผ ๋ช‡ ๊ฐœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋‚ด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ข…์ด ์กฐ๊ฐ์— ์ ํžŒ ์ˆซ์ž๊ฐ€ ์ ํžŒ ๋ฌธ์ž์—ด numbers๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ข…์ด ์กฐ๊ฐ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์†Œ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ numbers๋Š” ๊ธธ์ด 1 ์ด์ƒ 7 ์ดํ•˜์ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. numbers๋Š” 0~9๊นŒ์ง€ ์ˆซ์ž๋งŒ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. 013์€ 0, 1, 3 ์ˆซ์ž๊ฐ€ ์ ํžŒ ์ข…์ด ์กฐ๊ฐ์ด ํฉ์–ด์ ธ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ numbersreturn 17 3 011 2 ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช… ์˜ˆ์ œ #1 [1, 7]์œผ๋กœ๋Š” ์†Œ์ˆ˜ [7, 17, 71]๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ œ #2 [0, 1, 1]์œผ๋กœ๋Š” ์†Œ์ˆ˜ [11, 101]๋ฅผ ๋งŒ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][Python] ๋ชจ์˜๊ณ ์‚ฌ

๋ฌธ์ œ ์„ค๋ช… ์ˆ˜ํฌ์ž๋Š” ์ˆ˜ํ•™์„ ํฌ๊ธฐํ•œ ์‚ฌ๋žŒ์˜ ์ค€๋ง์ž…๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž ์‚ผ์ธ๋ฐฉ์€ ๋ชจ์˜๊ณ ์‚ฌ์— ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ์ „๋ถ€ ์ฐ์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž๋Š” 1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฐ์Šต๋‹ˆ๋‹ค. 1๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€์˜ ์ •๋‹ต์ด ์ˆœ์„œ๋Œ€๋กœ ๋“ค์€ ๋ฐฐ์—ด answers๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ€์žฅ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ๋งžํžŒ ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฌ์ธ์ง€ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘..

ํž™ (Heaps)

ํž™(heap)๋„ ์ด์ง„ ํŠธ๋ฆฌ์˜ ํ•œ ์ข…๋ฅ˜๋กœ ์ด์ง„ ํž™(binary heap) ์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ด์ง„ํž™์€ ํŠน๋ณ„ํ•œ ์กฐ๊ฑด๋“ค์„ ๋งŒ์กฑํ•˜๋Š” ์ด์ง„ ํŠธ๋ฆฌ์ด๋‹ค. ๋ฃจ๋“œ(root) ๋…ธ๋“œ๊ฐ€ ์–ธ์ œ๋‚˜ ์ตœ๋Œ“๊ฐ’ ๋˜๋Š” ์ตœ์†Ÿ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ์ตœ๋Œ“๊ฐ’์„ ๊ฐ€์ง€๋ฉด ์ตœ๋Œ€ ํž™(max heap), ์ตœ์†Ÿ๊ฐ’์„ ๊ฐ€์ง€๋ฉด ์ตœ์†Œ ํž™(min heap)์ด๋‹ค. ์™„์ „ ์ด์ง„ ํŠธ๋ฆฌ์—ฌ์•ผ ํ•œ๋‹ค. ์ตœ๋Œ€ ํž™ ๋‚ด์˜ ์ž„์˜์˜ ๋…ธ๋“œ๋ฅผ ๋ฃจํŠธ๋กœ ํ•˜๋Š” ์„œ๋ธŒํŠธ๋ฆฌ ๋˜ํ•œ ์ตœ๋Œ€ํž™์ด๋‹ค. (์žฌ๊ท€์ ์œผ๋กœ๋„ ์ •์˜๊ฐ€ ๋จ) ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์™€์˜ ๋น„๊ต ์›์†Œ๋“ค์€ ์™„์ „ํžˆ ํฌ๊ธฐ ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด์žˆ๋Š”๊ฐ€? ์ด์ง„ํƒ์ƒ‰์€ ๊ทธ๋ ‡์ง€๋งŒ ํž™์€ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค. ํŠน์ • ํ‚ค ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์›์†Œ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ๋Š” ๊ฐ€๋Šฅ, ํž™์€ ๋ถˆ๊ฐ€ ๋ถ€๊ฐ€์˜ ์ œ์•ฝ ์กฐ๊ฑด์€ ์–ด๋–ค ๊ฒƒ์ธ๊ฐ€? ํž™์€ ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ์— ๋น„ํ•ด ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ์—ฌ์•ผํ•œ๋‹ค๋Š” ์ œ์•ฝ์กฐ๊ฑด์ด ์žˆ..

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ (Binary Search Trees)

์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ์ด์ง„ ํŠธ๋ฆฌ์˜ ์ผ์ข…์œผ๋กœ ๋ชจ๋“  ๋…ธ๋“œ์— ๋Œ€ํ•ด์„œ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ ํ˜„์žฌ ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ์ž‘๊ณ  ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ ํ˜„์žฌ ๋…ธ๋“œ์˜ ๊ฐ’๋ณด๋‹ค ํฐ ์„ฑ์งˆ์„ ๋งŒ์กฑํ•˜๋Š” ์ด์ง„ํŠธ๋ฆฌ์ด๋‹ค. ๋‹จ ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์—†๋Š”๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ•œ๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์„ ํ•˜๋Š”๋ฐ ์œ ์šฉํ•˜๊ฒŒ ์ด์šฉ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ํƒ์ƒ‰๋ฒ•์€ ์ด์ง„ํƒ์ƒ‰๊ณผ ๋น„์Šทํ•ด๋ณด์ธ๋‹ค, ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ์ด์šฉํ•œ ์ด์ง„ ํƒ์ƒ‰๊ณผ ๋น„๊ต ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ์ด์šฉํ–ˆ์„ ๋•Œ๋Š” ๋ฐฐ์—ด์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€, ์‚ญ์ œ๊ฐ€ ์šฉ์ดํ•˜๋‹ค. ํ•˜์ง€๋งŒ ๊ณต๊ฐ„์„ ๋งŽ์ด ์ฐจ์ง€ํ•œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๋˜ ํ•ญ์ƒ O(logN)์˜ ๋ณต์žก๋„๋ฅผ ๊ฐ–๊ณ ์žˆ์ง„ ์•Š๋Š”๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ์ถ”์ƒ์  ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ ํ‘œํ˜„ - ๊ฐ ๋…ธ๋“œ๋Š” (key, value)์˜ ์Œ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ํ‚ค๋ฅผ ์ด์šฉํ•ด์„œ ๊ฒ€์ƒ‰๊ฐ€๋Šฅ, ๋ณด..

์ด์ง„ํŠธ๋ฆฌ์˜ ์ˆœํšŒ (Traversal) - ๋„“์ด ์šฐ์„  ์ˆœํšŒ (BFT)

๋„“์ด ์šฐ์„  ์ˆœํšŒ (Breadth First Traversal) ์ˆ˜์ค€(level)์ด ๋‚ฎ์€ ๋…ธ๋“œ๋ฅผ ์šฐ์„ ์œผ๋กœ ๋ฐฉ๋ฌธ ๊ฐ™์€ ์ˆ˜์ค€์˜ ๋…ธ๋“œ๋“ค ์‚ฌ์ด์—์„œ๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ์˜ ๋ฐฉ๋ฌธ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋ฐฉ๋ฌธ, ์™ผ์ชฝ ์ž์‹ ๋…ธ๋“œ๋ฅผ ์˜ค๋ฅธ์ชฝ ์ž์‹๋ณด๋‹ค ๋จผ์ € ๋ฐฉ๋ฌธ ํ•œ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ–ˆ์„ ๋•Œ, ๋‚˜์ค‘์— ๋ฐฉ๋ฌธํ•  ๋…ธ๋“œ๋“ค์„ ์ˆœ์„œ๋Œ€๋กœ ๊ธฐ๋กํ•ด ๋‘์–ด์•ผ ํ•จ ๋…ธ๋“œ์˜ ์ˆ˜์ค€์— ๋”ฐ๋ผ ์ˆœ์„œ๋ฅผ ์ •ํ•˜์—ฌ ๋…ธ๋“œ๋“ค์„ ๋ฐฉ๋ฌธํ•˜๋Š” ์ˆœํšŒ ๋ฐฉ์‹์ด๋‹ค. ์ด ๋ฐฉ์‹์€ ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ–ˆ์„ ๋•Œ ๋‚˜์ค‘์— ๊ทธ ๋…ธ๋“œ์˜ ์ž์‹ ๋…ธ๋“œ๋“ค์„ ๋ฐฉ๋ฌธํ•˜๊ธฐ๋กœ ํ•ด ๋‘๊ณ  ๊ฐ™์€ ์ˆ˜์ค€์— ์žˆ๋Š” ๋‹ค๋ฅธ ๋…ธ๋“œ๋“ค(์ง์ ‘ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋ง๊ณ ) ์„ ์šฐ์„  ๋ฐฉ๋ฌธํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์žฌ๊ท€์ ์ธ ์„ฑ์งˆ์„ ๊ฐ–์ง€ ์•Š๋Š”๋‹ค. ๋‚˜์ค‘์— ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•˜๊ธฐ๋กœ ํ•˜๊ณ  ๊ทธ ์ˆœ์„œ๋ฅผ ๊ธฐ์–ตํ•ด๋‘์ž! ์— ์ ํ•ฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ํ๊ฐ€ ์žˆ๋‹ค. ๋จผ์ € ๋„ฃ์€ ์›์†Œ๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋Š” ์„ ์ž…์„ ์ถœ ์„ฑ์งˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ..