๋ชฉ๋ก์•Œ๊ณ ๋ฆฌ์ฆ˜ (20)

๐ŸŒฑ → ๐ŸŒณ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜ - python

https://school.programmers.co.kr/learn/courses/30/lessons/42576 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ์„ค๊ณ„ ๋ฐฉ๋ฒ• completion ๋Œ๋ฉด์„œ participant์— i๊ฐ€ ์žˆ์œผ๋ฉด completion ๋ฐฐ์—ด์—์„œ i ์ง€์›Œ์ฃผ๊ณ , ๋งˆ์ง€๋ง‰ ๋‚จ์€ participant๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Œ ๊ทผ๋ฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(n^2) ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ดˆ๊ณผ๋ฐœ์ƒ ๋ฌธ๋“ python ๋‚ด์žฅ sort() ํ•จ์ˆ˜๊ฐ€ O(nlogN)์ธ ๊ฒŒ ๊ธฐ์–ต๋‚ฌ์Œ ๋‚ด์žฅํ•จ์ˆ˜ ์‚ฌ์šฉํ•ด์„œ ์ •๋ ฌํ•œ ๋’ค, ์ˆœ์„œ๋Œ€๋กœ ๋นผ๋ฉด ๋˜๊ฒ ๊ตฌ๋‚˜ ์ƒ๊ฐํ•จ ์ฝ”๋“œ ์‹œ๊ฐ„์ดˆ๊ณผ de..

Algorithms 2023. 8. 2. 13:07
[Baekjoon] 1715๋ฒˆ : ์นด๋“œ ์ •๋ ฌํ•˜๊ธฐ python

https://www.acmicpc.net/problem/1715 1715๋ฒˆ: ์นด๋“œ ์ •๋ ฌํ•˜๊ธฐ ์ •๋ ฌ๋œ ๋‘ ๋ฌถ์Œ์˜ ์ˆซ์ž ์นด๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ๊ฐ ๋ฌถ์Œ์˜ ์นด๋“œ์˜ ์ˆ˜๋ฅผ A, B๋ผ ํ•˜๋ฉด ๋ณดํ†ต ๋‘ ๋ฌถ์Œ์„ ํ•ฉ์ณ์„œ ํ•˜๋‚˜๋กœ ๋งŒ๋“œ๋Š” ๋ฐ์—๋Š” A+B ๋ฒˆ์˜ ๋น„๊ต๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผํ…Œ๋ฉด, 20์žฅ์˜ ์ˆซ์ž ์นด๋“œ ๋ฌถ์Œ๊ณผ 30์žฅ www.acmicpc.net ์„ค๊ณ„ ๋ฐฉ๋ฒ• ๋น„๊ต ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ž‘์œผ๋ ค๋ฉด ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’๋“ค๋ถ€ํ„ฐ ๋จผ์ € ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค. ๋‹จ ํ•˜๋‚˜์˜ ๊ฐ’์ด ๋‚จ์„ ๋•Œ๊นŒ์ง€ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’ 2๊ฐœ๋ฅผ ๊ณ„์‚ฐ, ์ถ”๊ฐ€ ๊ทธ๋ฆฌ๊ณ  ์ €์žฅ์„ ๋ฐ˜๋ณตํ•œ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ฐฐ์—ด๋กœ ์ฒ˜๋ฆฌํ•  ๊ฒฝ์šฐ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ •๋ ฌํ•˜๋Š” ๊ณผ์ •์„ ์šฐ์„ ์ˆœ์œ„ ํ์— ๋งก๊ฒจ์ฃผ๋ฉด ํ•ด๊ฒฐ ์ฝ”๋“œ ์‹œ๊ฐ„์ดˆ๊ณผ ์ฝ”๋“œ import sys input = sys.stdin.readline n = int(input()) ca..

Algorithm) Dynamic Programming

๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ( ๋™์  ๊ณ„ํš๋ฒ•) ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ : ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ ์‹œ๊ฐ„ ํšจ์œจ์„ฑ์„ ๋น„์•ฝ์ ์œผ๋กœ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ• ์ด๋ฏธ ๊ณ„์‚ฐ๋œ ๊ฒฐ๊ณผ(์ž‘์€ ๋ฌธ์ œ)๋Š” ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์ €์žฅํ•˜์—ฌ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๋„๋ก ํ•จ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ตฌํ˜„์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹ ํƒ‘ ๋‹ค์šด(ํ•˜ํ–ฅ์‹) ๋ณดํ…€ ์—…(์ƒํ–ฅ์‹) ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ถ„์•ผ์—์„œ ๋™์ (dynamic)์ด๋ž€? ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ ๋™์  ํ• ๋‹น(dynamic allocation)์€ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋„์ค‘์— ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ธฐ๋ฒ•์„ ์˜๋ฏธ ๋ฐ˜๋ฉด ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ‘๋‹ค์ด๋‚˜๋ฏน’์€ ๋ณ„ ์˜๋ฏธ ์—†์ด ์‚ฌ์šฉ๋œ ๋‹จ์–ด ๋‹ค์ด๋‚˜๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์กฐ๊ฑด ์ตœ์  ๋ถ€๋ถ„ ๊ตฌ์กฐ(Optimal Substructure) ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž‘์€ ๋ฌธ์ œ์˜ ๋‹ต์„ ๋ชจ์•„์„œ..

Algorithms 2022. 10. 25. 15:07
Algorithm) Binary Search(์ด์ง„ํƒ์ƒ‰)

ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆœ์ฐจ ํƒ์ƒ‰: ๋ฆฌ์ŠคํŠธ ์•ˆ์— ์žˆ๋Š” ํŠน์ •ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์•ž์—์„œ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ• ์ด์ง„ ํƒ์ƒ‰: ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ์—์„œ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ์ ˆ๋ฐ˜์”ฉ ์ขํ˜€๊ฐ€๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ด์ง„ ํƒ์ƒ‰์€ ์‹œ์ž‘์ , ๋์ , ์ค‘๊ฐ„์ ์„ ์ด์šฉํ•˜์—ฌ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•จ ์ด์ง„ ํƒ์ƒ‰ ๋™์ž‘ ์˜ˆ์‹œ ์ด์ง„ ํƒ์ƒ‰์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ ๋‹จ๊ณ„๋งˆ๋‹ค ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ 2๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๋ฏ€๋กœ ์—ฐ์‚ฐ ํšŸ์ˆ˜๋Š” $log_2N$ ์— ๋น„๋ก€ํ•จ ์˜ˆ๋ฅผ ๋“ค์–ด ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ 32๊ฐœ์ผ ๋•Œ, ์ด์ƒ์ ์œผ๋กœ 1๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋ฉด 16๊ฐœ๊ฐ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋‚จ์Œ 2๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋ฉด 8๊ฐœ๊ฐ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋‚จ์Œ 3๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋ฉด 4๊ฐœ๊ฐ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋‚จ์Œ ๋‹ค์‹œ ๋งํ•ด ์ด์ง„ ํƒ์ƒ‰์€ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ์ ˆ๋ฐ˜์”ฉ ์ค„์ด๋ฉฐ, ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” $O(logN)$์„ ๋ณด์žฅํ•จ ํŒŒ์ด์ฌ ์ด์ง„ ํƒ์ƒ‰ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ bis..

Algorithms 2022. 10. 25. 12:55