λͺ©λ‘μ „체 κΈ€ (355)

DATA101

[파이썬] μ§‘ν•©(Set) μžλ£Œν˜•μ— λŒ€ν•΄ μ•Œμ•„λ³΄μž!

μ•ˆλ…•ν•˜μ„Έμš”, μ˜€λŠ˜μ€ 파이썬 μ§‘ν•©(Set) μžλ£Œν˜•μ— λŒ€ν•΄ μ•Œμ•„λ΄…λ‹ˆλ‹€. 그럼 λ°”λ‘œ μ‹œμž‘ν•˜μ£ ! λͺ©μ°¨ 1. μ§‘ν•© μžλ£Œν˜•μ΄λž€? 2. μ§‘ν•© μžλ£Œν˜• 생성 및 μ΄ˆκΈ°ν™” 3. μ§‘ν•© μžλ£Œν˜• κ΄€λ ¨ ν•¨μˆ˜ 4. μ§‘ν•© μžλ£Œν˜•μ˜ μ—°μ‚° 1. μ§‘ν•© μžλ£Œν˜•μ΄λž€? μ§‘ν•©(Set) μžλ£Œν˜•μ€ μˆ˜ν•™μ—μ„œ 자주 μ‚¬μš©λ˜λŠ” 집합을 μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ μžλ£Œν˜•μ΄λ©° μ•„λž˜μ™€ 같은 νŠΉμ§•μ΄ μžˆμŠ΅λ‹ˆλ‹€. - 쀑뢁 된 μ›μ†Œλ₯Ό κ°€μ§ˆ 수 μ—†λ‹€. - μ›μ†Œ κ°„μ˜ μˆœμ„œλ₯Ό κ³ λ €ν•˜μ§€ μ•ŠλŠ”λ‹€. μœ„μ™€ 같은 νŠΉμ§• 덕뢄에, 예λ₯Ό λ“€μ–΄ νŠΉμ • 데이터가 μ–΄λ–€ 연산을 μ€‘λ³΅μœΌλ‘œ μˆ˜ν–‰ν–ˆλŠ”μ§€ μ—¬λΆ€λ₯Ό ν™•μΈν•˜λŠ” 데 μœ μš©ν•œ μžλ£Œν˜•μž…λ‹ˆλ‹€. 2. μ§‘ν•© μžλ£Œν˜• 생성 및 μ΄ˆκΈ°ν™” μ§‘ν•© μžλ£Œν˜•μ„ μƒμ„±ν•˜κ³  μ΄ˆκΈ°ν™”ν•˜λŠ” 방법은 크게 2κ°€μ§€κ°€ μžˆμŠ΅λ‹ˆλ‹€. (1) set() ν™œμš© # μ§‘ν•© μžλ£Œν˜• 생성 및 μ΄ˆκΈ°ν™”1: set() ν™œμš© ..

SW 개발/Python 2021. 4. 19. 10:49
[파이썬] λ”•μ…”λ„ˆλ¦¬(Dictionary, 사전) μžλ£Œν˜•μ— λŒ€ν•΄ μ•Œμ•„λ³΄μž!

μ•ˆλ…•ν•˜μ„Έμš”, μ˜€λŠ˜μ€ νŒŒμ΄μ¬μ—μ„œ 사전 μžλ£Œν˜•μ΄λΌκ³  λΆˆλ¦¬λŠ” λ”•μ…”λ„ˆλ¦¬(Dictionary) μžλ£Œν˜•μ— λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. 그럼 λ°”λ‘œ μ‹œμž‘ν•˜μ£ ! κ°œλ… 및 νŠΉμ§• 사전 μžλ£Œν˜•μ€ ν‚€(key)와 κ°’(value)의 쌍으둜 이루어진 데이터λ₯Ό μ €μž₯ν•˜λŠ” μžλ£Œν˜•μž…λ‹ˆλ‹€. νŒŒμ΄μ¬μ—μ„œ λ¦¬μŠ€νŠΈλ‚˜ νŠœν”Œμ€ 데이터에 νŠΉλ³„ν•œ νƒœκΉ… 없이 순차적으둜 데이터λ₯Ό μ €μž₯ν•˜λŠ” μžλ£Œν˜•μž…λ‹ˆλ‹€. 반면, 사전 μžλ£Œν˜•μ€ ν‚€-κ°’ 데이터 μŒμ„ μ €μž₯ν•˜κΈ° λ•Œλ¬Έμ— νŠΉμ •ν•œ keyλ₯Ό κΈ°μ€€μœΌλ‘œ λ˜λŠ” νŠΉμ • valueλ₯Ό κΈ°μ€€μœΌλ‘œ μžλ£Œν˜•μ— μ ‘κ·Όν•  수 μžˆλ‹€λŠ” μž₯점이 μžˆμŠ΅λ‹ˆλ‹€. λ”•μ…”λ„ˆλ¦¬ μžλ£Œν˜• 생성 및 μ΄ˆκΈ°ν™” 예λ₯Ό λ“€μ–΄, keyμ—λŠ” κ΅­κ°€ μ½”λ“œλ₯Ό μž…λ ₯ν•˜κ³ , valueλŠ” κ΅­κ°€μ½”λ“œμ— ν•΄λ‹Ήν•˜λŠ” κ΅­κ°€ 이름을 μž…λ ₯ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. # 사전 μžλ£Œν˜• 생성 dic = dict() dic['KR'] = ..

SW 개발/Python 2021. 4. 18. 11:22
[자료ꡬ쑰] κ·Έλž˜ν”„ μžλ£Œκ΅¬μ‘°μ™€ 트리 자료ꡬ쑰의 차이에 λŒ€ν•΄ μ•Œμ•„λ³΄μž!

μ•ˆλ…•ν•˜μ„Έμš”, μ˜€λŠ˜μ€ κ·Έλž˜ν”„(graph) μžλ£Œκ΅¬μ‘°μ™€ 트리(tree) 자료ꡬ쑰의 차이에 λŒ€ν•΄ μ•Œμ•„λ΄…λ‹ˆλ‹€. κ·Έλž˜ν”„ μžλ£Œκ΅¬μ‘°μ— λŒ€ν•œ μžμ„Έν•œ μ„€λͺ…은 μ•„λž˜ 링크λ₯Ό μ°Έκ³ ν•΄ μ£Όμ„Έμš”! heytech.tistory.com/66 [자료ꡬ쑰] κ·Έλž˜ν”„ μžλ£Œκ΅¬μ‘°μ— λŒ€ν•΄ μ•Œμ•„λ³΄μž!(λ…Έλ“œ, κ°„μ„ ) μ•ˆλ…•ν•˜μ„Έμš”, μ˜€λŠ˜μ€ κ·Έλž˜ν”„(graph) μžλ£Œκ΅¬μ‘°μ— λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. κ·Έλž˜ν”„ 자료ꡬ쑰의 ꡬ성 κ·Έλž˜ν”„λŠ” κ·Έλ¦Ό 1 κ³Ό 같이 λ…Έλ“œ(Node)와 κ°„μ„ (Edge)으둜 ν‘œν˜„λ©λ‹ˆλ‹€. μ΄λ•Œ λ…Έλ“œλŠ” 정점(Vertext)이라고도 heytech.tistory.com λ‚΄μš©μ΄ κ°„λ‹¨ν•˜λ―€λ‘œ μ•„λž˜ ν‘œ 1 κ³Ό 같이 정리해 λ³Ό 수 μžˆμ„ 것 κ°™μŠ΅λ‹ˆλ‹€. κ·Έλž˜ν”„ 자료ꡬ쑰 트리 자료ꡬ쑰 λ°©ν–₯μ„±(directionality) 무-/λ°©ν–₯ κ·Έλž˜ν”„ only λ°©ν–₯ κ·Έλž˜ν”„ μˆœν™˜μ„±(circ..

ν”Œλ‘œμ΄λ“œ μ›Œμ…œ(Floyd-Warshall) μ•Œκ³ λ¦¬μ¦˜ 이해(+Python κ΅¬ν˜„)

λ³Έ ν¬μŠ€νŒ…μ—μ„œλŠ” μ΅œλ‹¨κ²½λ‘œ(κΈΈ μ°ΎκΈ°)μ•Œκ³ λ¦¬μ¦˜ μ€‘μ—μ„œλ„ ν”Œλ‘œμ΄λ“œ-μ›Œμ…œ μ•Œκ³ λ¦¬μ¦˜μ— λŒ€ν•΄ μ•Œμ•„λ΄…λ‹ˆλ‹€. πŸ“š λͺ©μ°¨ 1. μ΅œλ‹¨κ²½λ‘œ(κΈΈ μ°ΎκΈ°) μ•Œκ³ λ¦¬μ¦˜μ΄λž€? 2. ν”Œλ‘œμ΄λ“œ-μ›Œμ…œ μ•Œκ³ λ¦¬μ¦˜ κ°œλ… 3. ν”Œλ‘œμ΄λ“œ-μ›Œμ…œ μ•Œκ³ λ¦¬μ¦˜ νŠΉμ§• 4. ν”Œλ‘œμ΄λ“œ μ›Œμ…œ μ•Œκ³ λ¦¬μ¦˜μ˜ λ™μž‘ κ³Όμ • 5. ν”Œλ‘œμ΄λ“œ μ›Œμ…œ μ•Œκ³ λ¦¬μ¦˜ κ΅¬ν˜„(Python) 1. μ΅œλ‹¨κ²½λ‘œ(κΈΈμ°ΎκΈ°) μ•Œκ³ λ¦¬μ¦˜μ΄λž€? μ΅œλ‹¨κ²½λ‘œ μ•Œκ³ λ¦¬μ¦˜μ€ κΈΈμ°ΎκΈ° μ•Œκ³ λ¦¬μ¦˜μ΄λΌκ³ λ„ 뢈리며, 말 κ·ΈλŒ€λ‘œ νŠΉμ • μ§€μ κΉŒμ§€ κ°€μž₯ λΉ λ₯΄κ²Œ 도달할 수 μžˆλŠ” 경둜λ₯Ό μ°ΎλŠ” μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. 이번 ν¬μŠ€νŒ…μ—μ„œλŠ” μ•Œκ³ λ¦¬μ¦˜ ν…ŒμŠ€νŠΈμ—μ„œ 빈좜 μ΅œλ‹¨κ²½λ‘œ μ•Œκ³ λ¦¬μ¦˜ μœ ν˜• 2κ°€μ§€ 쀑 2번째, ν”Œλ‘œμ΄λ“œ-μ›Œμ…œ μ•Œκ³ λ¦¬μ¦˜μ— λŒ€ν•΄ μ•Œμ•„λ΄…λ‹ˆλ‹€. λ‹€μ΅μŠ€νŠΈλΌ μ΅œλ‹¨κ²½λ‘œ μ•Œκ³ λ¦¬μ¦˜(Dijkstra Algorithm) ν”Œλ‘œμ΄λ“œ-μ›Œμ…œ μ•Œκ³ λ¦¬μ¦˜(Floyd-Warshal..

[파이썬] 리슀트 μ»΄ν”„λ¦¬ν—¨μ…˜(list comprehension)에 λŒ€ν•΄ μ•Œμ•„λ³΄μž!

κ°„λ‹¨ν•œ λ‚΄μš©μ΄λ―€λ‘œ λ°”λ‘œ 본둠으둜 λ“€μ–΄κ°€μ£ ! 1. μ •μ˜ 및 νŠΉμ§• 리슀트 μ»΄ν”„λ¦¬ν—¨μ…˜(comprehension)은 리슀트λ₯Ό μ΄ˆκΈ°ν™”ν•˜λŠ” 방법 쀑 ν•˜λ‚˜λ‘œμ„œ λŒ€κ΄„ν˜Έ('[]') μ•ˆμ— μ‘°κ±΄λ¬Έμ΄λ‚˜ λ°˜λ³΅λ¬Έμ„ λ„£λŠ” λ°©μ‹μœΌλ‘œ 리슀트λ₯Ό μ΄ˆκΈ°ν™”ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. 리슀트 μ»΄ν”„λ¦¬ν—¨μ…˜μ€ ν•„μš”ν•œ 리슀트λ₯Ό 생성할 λ•Œ 보닀 κ°„κ²°ν•˜κ³  μ§κ΄€μ μœΌλ‘œ μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€. μ•„λž˜ μ˜ˆμ‹œμ™€ ν•¨κ»˜ μ‚΄νŽ΄λ³΄μ£ . 2. μ˜ˆμ‹œ1: 일반적인 리슀트 생성 방법과 비ꡐ μ˜ˆμ‹œλ‘œμ„œ κ°„λ‹¨ν•˜κ²Œ 1λΆ€ν„° 100κΉŒμ§€μ˜ μ •μˆ˜ μ€‘μ—μ„œ 짝수만 ν¬ν•¨ν•˜λŠ” 리슀트λ₯Ό 생성해 λ³΄κ² μŠ΅λ‹ˆλ‹€. 특히 반볡문과 쑰건문을 각각 λ‚˜λˆ„μ–΄ μ‚¬μš©ν•˜μ—¬ 리슀트λ₯Ό μƒμ„±ν•˜λŠ” 방법과 λ‚˜λˆ„μ–΄ μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. (1) 일반적인 방법 λ¨Όμ €, 리슀트λ₯Ό 직접 μƒμ„±ν•˜κ³ , λ°˜λ³΅λ¬Έμ„ μˆ˜ν–‰ν•˜κ³  κ·Έ μ•ˆμ—μ„œ 쑰건문을 μˆ˜ν–‰..

SW 개발/Python 2021. 4. 13. 09:51
λ‹€μ΅μŠ€νŠΈλΌ μ΅œλ‹¨ 경둜 μ•Œκ³ λ¦¬μ¦˜ 이해 (+Python κ΅¬ν˜„)

πŸ“š λͺ©μ°¨ 1. μ΅œλ‹¨κ²½λ‘œ(κΈΈμ°ΎκΈ°) μ•Œκ³ λ¦¬μ¦˜μ΄λž€? 2. λ‹€μ΅μŠ€νŠΈλΌ μ΅œλ‹¨κ²½λ‘œ μ•Œκ³ λ¦¬μ¦˜μ΄λž€? 3. λ‹€μ΅μŠ€νŠΈλΌ μ΅œλ‹¨κ²½λ‘œ μ•Œκ³ λ¦¬μ¦˜μ˜ λ™μž‘ κ³Όμ • 4. κ΅¬ν˜„ 방법1: 일반적인 κ΅¬ν˜„ 4.1. μ½”λ“œ ν•΄μ„€ 4.2. 전체 μ½”λ“œ 4.3. μ‹œκ°„ λ³΅μž‘λ„ 5. κ΅¬ν˜„ 방법2: μ‹œκ°„ λ³΅μž‘λ„ κ°œμ„  5.1. μš°μ„ μˆœμœ„ 큐(Priority Queue) 자료ꡬ쑰 5.2. νž™(Heap) 자료ꡬ쑰 5.3. μš°μ„ μˆœμœ„ 큐 자료ꡬ쑰 기반의 μ•Œκ³ λ¦¬μ¦˜ λ™μž‘ κ³Όμ • 5.4. μš°μ„ μˆœμœ„ 큐 자료ꡬ쑰 기반 μ•Œκ³ λ¦¬μ¦˜ κ΅¬ν˜„(Python) 1. μ΅œλ‹¨κ²½λ‘œ(κΈΈμ°ΎκΈ°) μ•Œκ³ λ¦¬μ¦˜μ΄λž€? μ΅œλ‹¨κ²½λ‘œ μ•Œκ³ λ¦¬μ¦˜μ€ κΈΈμ°ΎκΈ° μ•Œκ³ λ¦¬μ¦˜μ΄λΌκ³ λ„ 뢈리며, 말 κ·ΈλŒ€λ‘œ νŠΉμ • μ§€μ κΉŒμ§€ κ°€μž₯ λΉ λ₯΄κ²Œ 도달할 수 μžˆλŠ” 경둜λ₯Ό μ°ΎλŠ” μ•Œκ³ λ¦¬μ¦˜μž…λ‹ˆλ‹€. μ•Œκ³ λ¦¬μ¦˜ ν…ŒμŠ€νŠΈμ—μ„œ 빈좜 μ΅œλ‹¨κ²½λ‘œ μ•Œκ³ λ¦¬μ¦˜ μœ ν˜•μ€ μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆ..