[python]"์ฝ”ํ…Œ"๋ฅผ ์œ„ํ•œ ๊ธฐ์ดˆ ํŒŒ์ด์ฌ(7) - collections.Counter์‚ฌ์šฉํ•˜๊ธฐ
ยท
๐ŸAlgorithm
ํŒŒ์ด์ฌ ์ฝ”ํ…Œ ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด collections์™€ itertools ๋ชจ๋“ˆ์„ ์ •๋ง ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.์˜ค๋Š˜๋ถ€ํ„ฐ๋Š” ์ด ์ปจํ…Œ์ด๋„ˆ๋“ค ์ค‘ ์ฝ”ํ…Œ์— ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒํ˜• ๋ช‡๊ฐ€์ง€๋ฅผ ์‚ดํŽด๋ณด๋„๋กํ•œ๋‹ค. ๋จผ์ € ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” collection๋ชจ๋“ˆ์˜ Counter์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.Counterhttps://docs.python.org/3.11/library/collections.html#collections.Counter collections โ€” Container datatypesSource code: Lib/collections/__init__.py This module implements specialized container datatypes providing alternatives to Pythonโ€™s gener..
[python] "์ฝ”ํ…Œ"๋ฅผ ์œ„ํ•œ ๊ธฐ์ดˆ ํŒŒ์ด์ฌ (6) - set ์—ฐ์‚ฐ
ยท
๐ŸAlgorithm
์˜ค๋Š˜์€ ์ฝ”ํ…Œ์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” set์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์žSetset์€ ์ด๋ฆ„์ฒ˜๋Ÿผ ์ง‘ํ•ฉ์— ๊ด€๋ จํ•œ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค.๋‘๊ฐ€์ง€์˜ ํฐ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค.์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ค‘๋ณต๊ฐ’์„ ์ œ๊ฑฐํ•ด์ค€๋‹ค! ์ˆœ์„œ๊ฐ€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ๋ฆฌ์ŠคํŠธํ˜•์œผ๋กœ ๋‹ค์‹œ ๋ฐ”๊ฟ” ์‚ฌ์šฉํ•˜์ž์ค‘๋ณต์ œ๊ฑฐ๋Š” ๋‹ค์Œ์ฒ˜๋Ÿผ ๊ทธ๋ƒฅ list๋ฅผ set์œผ๋กœ ๋ฐ”๊พธ๋ฉด ์ œ๊ฑฐ๋œ๋‹ค.list_ = [1,2,3,4,5,5]print(set(list_)) # {1, 2, 3, 4, 5} ์ค‘๋ณต์„ ์ œ๊ฑฐํ•œ๋‹ค  ๋‹ค๋งŒ, ์œ„์˜ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด set์œผ๋กœ ์ค‘๋ณต ์ œ๊ฑฐ๋ฅผ ํ•œ ๊ฒฐ๊ณผ๋Š” ์ˆœ์„œ๊ฐ€ ์œ ์ง€๋˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿผ, ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ set์„ ์ด์šฉํ•˜์—ฌ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ? ์ด ๋•Œ๋Š” sortedํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•ด์ฃผ๋ฉด ๋œ..
[Daira i Noor] Python Algorithm(0) - sorting
ยท
๐ŸAlgorithm
๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ ฌ๋ฌธ์ œ์— ๋Œ€ํ•ด์„œ ๋‹ค๋ค„๋ณด๋„๋ก ํ•œ๋‹ค. sortinghttps://docs.python.org/ko/3/howto/sorting.html Sorting TechniquesAuthor, Andrew Dalke and Raymond Hettinger,. Python lists have a built-in list.sort() method that modifies the list in-place. There is also a sorted() built-in function that builds a new sorted lis...docs.python.orgํŒŒ์ด์ฌ์—์„œ๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜ sorted() ๋ฅผ ์ด์šฉํ•ด ์†์‰ฝ๊ฒŒ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. (list์˜ sortํ•จ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋ฆฌ์ŠคํŠธ์—์„œ๋งŒ ์‚ฌ..
[Daira i Noor] Python Algorithm (4) - ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๋‹ค์ต์ŠคํŠธ๋ผ
ยท
๐ŸAlgorithm
์ตœ๋‹จ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ตœ๋‹จ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ทธ๋ž˜ํ”„์—์„œ ์ •์ ๊ฐ„์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.  ํ•„์ˆ˜์ ์œผ๋กœ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํฌ๊ฒŒ 3๊ฐ€์ง€ ์ •๋„๋กœ ๊ผฝ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„์—์„œ ์ถœ๋ฐœ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ๋ชจ๋“  ๋…ธ๋“œ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์Œ. (์Œ์ˆ˜ ๊ฐ€์ค‘์น˜๋Š” ๋ถˆ๊ฐ€๋Šฅ)๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ๋‹ค์ต์ŠคํŠธ๋ผ์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ์Œ์ˆ˜ ๊ฐ€์ค‘์น˜๋„ ํ—ˆ์šฉ. (์Œ์ˆ˜ ์‚ฌ์ดํด์ด ์—†๋‹ค๋Š” ๊ฐ€์ • ํ•„์š”)ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ๋ชจ๋“  ์ •์ ์—์„œ ๋ชจ๋“  ์ •์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜.A ์•Œ๊ณ ๋ฆฌ์ฆ˜*: ํœด๋ฆฌ์Šคํ‹ฑ์„ ํ™œ์šฉํ•˜์—ฌ ํŠน์ • ๋ชฉํ‘œ ์ •์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์Œ. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ•˜๋‚˜์˜ ์ถœ๋ฐœ ์ •์ (source)์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ์ •์ ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.์•Œ๊ณ ๋ฆฌ์ฆ˜์ถœ๋ฐœ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜๊ณ , ํ•ด..
[Daira i Noor] Python Algorithm (3) - Minimum Spanning Tree
ยท
๐ŸAlgorithm
Graph ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๊ทธ๋ž˜ํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ DFS์™€ BFS์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋Š” ์•„๋ž˜์˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.https://he-kate1130.tistory.com/73 [Daira i Noor] Python Algorithm (2) - Brute Force Search์˜ค๋Š˜์€ ํŒŒ์ด์ฌ์„ ํ†ตํ•ด ์™„์ „ ํƒ์ƒ‰์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค.์™„์ „ ํƒ์ƒ‰์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹จ์ˆœํ•œ brute force์™€, ์ˆœ์—ด์˜ ํ™œ์šฉ, BFS/DFSk์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณธ๋‹ค. Brute Forcefor๋ฌธ๊ณผ if๋ฌธ์„ ํ™œ์šฉํ•˜์—ฌ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œhe-kate1130.tistory.com ์˜ค๋Š˜์€ Minimum spanning tree์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•œ๋‹ค. Minimum spanning tree (MST)MST๋Š” ํ•œ๊ตญ์–ด๋กœ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๋ผ ํ•œ๋‹ค. ..
[Daira i Noor] Python Algorithm (2) - Brute Force Search
ยท
๐ŸAlgorithm
์˜ค๋Š˜์€ ํŒŒ์ด์ฌ์„ ํ†ตํ•ด ์™„์ „ ํƒ์ƒ‰์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค.์™„์ „ ํƒ์ƒ‰์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹จ์ˆœํ•œ brute force์™€, ์ˆœ์—ด์˜ ํ™œ์šฉ, BFS/DFSk์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณธ๋‹ค. Brute Forcefor๋ฌธ๊ณผ if๋ฌธ์„ ํ™œ์šฉํ•˜์—ฌ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ฝ”ํ…Œ์—์„œ brute force๋Š” ์‚ฌ์‹ค ๋งŽ์ด ๋‚˜์˜ค๋Š” ํ’€์ด๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ์ง€๋งŒ, ํ’€์ด ๊ณผ์ •์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.  ์ˆœ์—ด์˜ ํ™œ์šฉํŒŒ์ด์ฌ์œผ๋กœ ์ˆœ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์˜ ํฌ์ŠคํŒ…์— ์†Œ๊ฐœ๋˜์–ด์žˆ๋‹ค.https://he-kate1130.tistory.com/70 [python] "์ฝ”ํ…Œ"๋ฅผ ์œ„ํ•œ ๊ธฐ์ดˆ ํŒŒ์ด์ฌ (5) - ์ˆœ์—ด, ์กฐํ•ฉ, ์ค‘๋ณต ์ˆœ์—ด, ์ค‘๋ณต ์กฐํ•ฉํŒŒ์ด์ฌ์—์„œ๋Š” iterpools๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ˆœ์—ด๊ณผ ์กฐํ•ฉ, ์ค‘๋ณต ์ˆœ์—ด๊ณผ ์ค‘๋ณต ์กฐํ•ฉ์— ๋Œ€ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. ๋ผ์ด๋ธŒ..
[Daira i Noor] Python Algorithm (1) - Binary Searching
ยท
๐ŸAlgorithm
์ด๋ถ„ํƒ์ƒ‰ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.Binary Search์ด๋ถ„ํƒ์ƒ‰์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋ ค๋Š” ๋Œ€์ƒ์ด ์ •๋ ฌ๋˜์–ด์žˆ๋‹ค๋Š”๊ฒƒ์ด ๊ฐ€์ •๋œ๋‹ค.์ฆ‰, ์ •๋ ฌ๋œ ์ƒํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. ํƒ์ƒ‰ ๋Œ€์ƒ ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ€์žฅ ์ค‘๊ฐ„์ง€์ ์„ ํ™•์ธํ•˜๊ณ , ํƒ€๊ฒŸ์ด๋˜๋Š” ๊ฐ’์ด ์˜ค๋ฅธ์ชฝ, ์™ผ์ชฝ์— ์žˆ์„์ง€ ํŒ๋‹จํ•˜์—ฌ ์ ์ฐจ ํƒ์ƒ‰๋Œ€์ƒ์„ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์—ฌ๋‚˜๊ฐ„๋‹ค.   ์ด๋ถ„ํƒ์ƒ‰์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(logN)์ด๋‹ค.๊ธฐ์กด์˜ ์ˆœ์ฐจํƒ์ƒ‰์ด O(N)์ž„ ๊ธฐ์–ตํ•œ๋‹ค๋ฉด ์ •๋ ฌ๋œ ์ƒํƒœ์—์„œ๋Š” ์ด๋ถ„ํƒ์ƒ‰์„ ํ™œ์šฉํ•˜๋Š”๊ฒƒ์œผ๋กœ ์ƒ๋‹นํžˆ ๋น ๋ฅด๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.  ๋งŒ์•ฝ ์ด๋ถ„ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด, ๋จผ์ € ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ์ธ์ง€ ๊ผญ ํ™•์ธ ํ›„์— ํƒ์ƒ‰ํ•ด์•ผ ํ•œ๋‹ค.์ •๋ ฌ๋˜์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์ˆœ์ฐจํƒ์ƒ‰๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ๋” ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ๋‹ค.  def binarySearch(a..
[python] "์ฝ”ํ…Œ"๋ฅผ ์œ„ํ•œ ๊ธฐ์ดˆ ํŒŒ์ด์ฌ (5) - ์ˆœ์—ด, ์กฐํ•ฉ, ์ค‘๋ณต ์ˆœ์—ด, ์ค‘๋ณต ์กฐํ•ฉ
ยท
๐ŸAlgorithm
ํŒŒ์ด์ฌ์—์„œ๋Š” iterpools๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ˆœ์—ด๊ณผ ์กฐํ•ฉ, ์ค‘๋ณต ์ˆœ์—ด๊ณผ ์ค‘๋ณต ์กฐํ•ฉ์— ๋Œ€ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ฝ”๋“œ๊ฐ€ ์ง์ ‘ ๊ตฌํ˜„์‹คํ–‰ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค ๋ช‡๋ฐฐ๋Š” ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ˆ™์ง€ํ•˜๊ณ , ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ์— ํ™œ์šฉํ•˜๋„๋ก ํ•˜์ž. ์ˆœ์—ด permutationfrom itertools import permutationsmy_List = [1,2,3,4,5]for _,elements in enumerate(permutations(my_List,2)): print(elements) #(1, 2)#(1, 3)# ...#(5, 3)#(5, 4) ํ™œ์šฉ ๋ฌธ์ œhttps://school.programmers.co.kr/tryouts/85920/challenges?language=python3์ค‘๋ณต ์ˆœ์—ด produc..
[python] "์ฝ”ํ…Œ"๋ฅผ ์œ„ํ•œ ๊ธฐ์ดˆ ํŒŒ์ด์ฌ (4) - Dictionary
ยท
๐ŸAlgorithm
์˜ค๋Š˜์€ ํŒŒ์ด์ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒํ˜•์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•ด๋ณธ๋‹ค. ํŒŒ์ด์ฌ ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ๊ณต๋ถ€๋ฅผ ํ•  ๋•Œ ๋ถ„๋ช…ํžˆ ๋ฐฐ์šฐ๊ณ  ๋„˜์–ด๊ฐ€๋Š” ์˜์—ญ์ด์ง€๋งŒ, ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•œ๋ฒˆ ์ •๋ฆฌ๋ฅผ ํ•ด๋‘๊ณ  ๋ฌธ์ œํ’€์ด์— ํ™œ์šฉํ•ด๋ณด๋Š”๊ฒƒ์ด ์ข‹๋‹ค. Dictionaty ๋”•์…”๋„ˆ๋ฆฌ์— ๋Œ€ํ•ด์„œ ํ•œ๋ฒˆ ๋˜์งš์–ด๋ณด์ž. ๋”•์…”๋„ˆ๋ฆฌ๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ element๋ฅผ ์–ป์ง€ ์•Š๊ณ , key-value์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค. # ๋”•์…”๋„ˆ๋ฆฌ ์ƒ์„ฑ dic_1 = {} #๋นˆ ๋”•์…”๋„ˆ๋ฆฌ dic_2 = dict() # ์„ ์–ธ -> key:value dic_3 = {'name': 'mingyung', 'age':4000, 'pet':{'type':'beta','name':'pearl','age':2}} keys=['name','age','pet'] ..