λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
728x90
λ°˜μ‘ν˜•

Algorithm36

[Algorithm] 합병 μ •λ ¬(Merge Sort)λž€? (feat. Swift) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ’» μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ λΆ„ν•  정볡 μ•Œκ³ λ¦¬μ¦˜ 쀑 ν•˜λ‚˜μΈ 합병 정렬에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ €κ³  ν•©λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ λΆ„ν•  정볡(Divide and Conquer Algorithm) μ•Œκ³ λ¦¬μ¦˜μ΄λž€? 🏑 μœ„μ—μ„œ 합병 정렬은 λΆ„ν•  정볡 μ•Œκ³ λ¦¬μ¦˜ 쀑 ν•˜λ‚˜λΌκ³  λ§μ”€λ“œλ ΈλŠ”λ°μš”. κ·Έλ ‡λ‹€λ©΄ λΆ„ν•  정볡 μ•Œκ³ λ¦¬μ¦˜μ€ λ¬΄μ—‡μΌκΉŒμš”? 말 κ·ΈλŒ€λ‘œ μ§€κΈˆ ν•΄κ²°ν•  수 μ—†λŠ” 문제λ₯Ό μž‘κ²Œ μͺΌκ°œμ„œ(λΆ„ν• ) ν’€μ–΄λ‚˜κ°€λŠ”(정볡) κ²ƒμž…λ‹ˆλ‹€. μž‘μ€ 문제λ₯Ό ν•΄κ²°ν•˜μ—¬ 큰 문제λ₯Ό ν•΄κ²°ν•΄λ‚˜κ°€λŠ” μ•Œκ³ λ¦¬μ¦˜μœΌλ‘œ μž¬κ·€ ν•¨μˆ˜λ₯Ό 톡해 μžμ—°μŠ€λŸ½κ²Œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 합병 μ •λ ¬μ΄λž€? 🀼‍♀️ 합병 μ •λ ¬ λ˜λŠ” 병합 정렬은 비ꡐ 기반 μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€. 일반적인 λ°©λ²•μœΌλ‘œ κ΅¬ν˜„ν–ˆμ„ λ•Œ 이 정렬은 μ•ˆμ • 정렬에 μ†ν•˜λ©°, λΆ„ν•  정볡 μ•Œκ³ λ¦¬μ¦˜μ˜ ν•˜λ‚˜μ΄λ‹€. μ‘΄ 폰 λ…Έμ΄λ§Œμ΄ 1.. 2021. 10. 14.
[Algorithm] μ‹œκ°„λ³΅μž‘λ„(Time-Complexity)λž€? (feat. Big O) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ’» μž…λ‹ˆλ‹€! μš”μ¦˜ λ“€μ–΄ μ•Œκ³ λ¦¬μ¦˜ 곡뢀λ₯Ό ν•˜λŠ”λ° μ•Œκ³ λ¦¬μ¦˜μ˜ 핡심인 μ‹œκ°„λ³΅μž‘λ„μ— λŒ€ν•΄μ„œ μ •λ¦¬ν•˜μ§€ μ•Šμ€ 것 κ°™μ•„μ„œ.. 이번 κΈ°νšŒμ— ꡬ체적으둜 μ‹œκ°„λ³΅μž‘λ„μ— λŒ€ν•΄μ„œ μ •λ¦¬ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€! λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ μ‹œκ°„λ³΅μž‘λ„λž€? ⏱ 컴퓨터곡학 μš©μ–΄λ‘œ, 컴퓨터 ν”„λ‘œκ·Έλž¨μ˜ μž…λ ₯κ°’κ³Ό μ—°μ‚° μˆ˜ν–‰ μ‹œκ°„μ˜ 상관관계λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 척도이닀. 일반적으둜 μ‹œκ°„ λ³΅μž‘λ„λŠ” 점근 ν‘œκΈ°λ²•μ„ μ΄μš©ν•˜μ—¬ λ‚˜νƒ€λ‚Έλ‹€. 즉, κ³„μ‚°λ˜λŠ” 양에 λ”°λΌμ„œ μ‹œκ°„μ΄ μ–Όλ§ˆλ‚˜ 걸릴지λ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ²ƒμž…λ‹ˆλ‹€. μ‹œκ°„λ³΅μž‘λ„ ν‘œκΈ°λ²• πŸ–Š μ‹œκ°„λ³΅μž‘λ„ ν‘œκΈ°λ²•μ€ λΉ…μ˜€λ©”κ°€,빅세타,λΉ…μ˜€ μ΄λ ‡κ²Œ 3가지가 μžˆμŠ΅λ‹ˆλ‹€. 1. BigΩ (Best case) λΉ…μ˜€λ©”κ°€ ν‘œκΈ°λ²•μ€ μ΅œμ„ μ˜ μ‹€ν–‰μ‹œκ°„ 즉, κ°€μž₯ λΉ λ₯Έ μΌ€μ΄μŠ€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” κ²ƒμž…λ‹ˆλ‹€. 2. Big𝚯 (Average case) 빅세타 ν‘œκΈ°λ²•μ€.. 2021. 9. 29.
[Algorithm] μ‚½μž… μ •λ ¬(Insertion Sort) μ΄λž€? (feat.Swift) μ•ˆλ…•ν•˜μ„Έμš” FomaπŸ’» μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ 학ꡐ μ•Œκ³ λ¦¬μ¦˜ μˆ˜μ—…μ„ λ“£λŠ” 쀑에 μ‚½μž… 정렬을 κ΅¬ν˜„ν•΄λ³΄λŠ” κ³Όμ œκ°€ μžˆμ—ˆλŠ”λ°... λ”± 이 방식이 μ–΄λ–€ 것이고 μ–΄λ–»κ²Œ κ΅¬ν˜„ν•΄μ•Ό ν•œλ‹€! 라고 ꡬ체적으둜 λ– μ˜€λ₯΄μ§€κ°€ μ•Šλ”λΌκ΅¬μš”... κ·Έλž˜μ„œ μ‚½μž… 정렬이 무엇이고 μ–΄λ–»κ²Œ κ΅¬ν˜„ν•΄μ•Ό ν•˜λŠ”μ§€μ— λŒ€ν•΄ 정리해보렀고 ν•©λ‹ˆλ‹€! λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ μ‚½μž… μ •λ ¬μ΄λž€? μ‚½μž… 정렬은 자료 λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό μ•žμ—μ„œλΆ€ν„° μ°¨λ‘€λŒ€λ‘œ 이미 μ •λ ¬λœ λ°°μ—΄ λΆ€λΆ„κ³Ό λΉ„κ΅ν•˜μ—¬, μžμ‹ μ˜ μœ„μΉ˜λ₯Ό μ°Ύμ•„ μ‚½μž…ν•¨μœΌλ‘œμ¨ 정렬을 μ™„μ„±ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€. -μœ„ν‚€ λ°±κ³Ό - μ •λ ¬ν•˜λŠ” 과정을 μ‚΄νŽ΄λ³΄λ©΄ μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€. μ‚½μž… μ •λ ¬ κ³Όμ • 82,10,9,72,31,45,60λ₯Ό μ‚½μž… 정렬을 ν•˜λŠ” 과정은 μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€. 1. λ¨Όμ € 맨 첫 번째인 82와 κ·Έ λ‹€μŒ 숫자인 10을 λΉ„κ΅ν•΄μ€λ‹ˆλ‹€. 10이 더.. 2021. 9. 28.
[Algorithm] λ°±νŠΈλž˜ν‚Ή(Backtracking)μ΄λž€? (feat. μ˜ˆμ œν¬ν•¨) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ’» μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ N-Queen 문제λ₯Ό ν’€λ©΄μ„œ ν•΄λ‹Ή λ¬Έμ œκ°€ λ°±νŠΈλž˜ν‚Ή λ¬Έμ œλΌλŠ” 것을 μ•Œκ²Œ λ˜μ—ˆλŠ”λ°μš”. κ·Έλž˜μ„œ λ°±νŠΈλž˜ν‚Ήμ΄ 무엇이고 μ–΄λ–»κ²Œ κ΅¬ν˜„ν•΄μ„œ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ”μ§€μ— λŒ€ν•΄ 정리해보렀고 ν•©λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ λ°±νŠΈλž˜ν‚Ήμ΄λž€? λͺ¨λ“  경우의 수λ₯Ό μ „λΆ€ κ³ λ €ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜ μƒνƒœκ³΅κ°„μ„ 트리둜 λ‚˜νƒ€λ‚Ό 수 μžˆμ„ λ•Œ μ ν•©ν•œ 방식이닀. μΌμ’…μ˜ 트리 탐색 μ•Œκ³ λ¦¬μ¦˜μ΄λΌκ³  봐도 λœλ‹€. 방식에 λ”°λΌμ„œ κΉŠμ΄μš°μ„ νƒμƒ‰(Depth First Search, DFS)κ³Ό λ„ˆλΉ„μš°μ„ νƒμƒ‰(Breadth First Search, BFS), μ΅œμ„  μš°μ„  탐색(Best First Search/HeuristicSearch)이 μžˆλ‹€. λͺ¨λ“  경우의 수λ₯Ό κ³ λ €ν•΄μ•Ό ν•˜λŠ” 문제라면, DFSκ°€ λ‚«λ‹€. BFSλ‘œλ„ κ΅¬ν˜„μ΄ λ¬Όλ‘  κ°€λŠ₯ν•˜μ§€λ§Œ,.. 2021. 8. 28.
[Swift] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ N-Queen Problem μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - N-Queen κ°€λ‘œ, μ„Έλ‘œ 길이가 n인 μ •μ‚¬κ°ν˜•μœΌλ‘œλœ 체슀판이 μžˆμŠ΅λ‹ˆλ‹€. 체슀판 μœ„μ˜ n개의 퀸이 μ„œλ‘œλ₯Ό 곡격할 수 없도둝 λ°°μΉ˜ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄μ„œ n이 4인경우 λ‹€μŒκ³Ό 같이 퀸을 λ°°μΉ˜ν•˜λ©΄ n개의 퀸은 programmers.co.kr Solution ν•΄λ‹Ή λ¬Έμ œλŠ” λ°±νŠΈλž˜ν‚Ή(DFS)으둜 ν’€μ–΄μ•Ό ν•˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€. 1. 각 ν–‰λ§ˆλ‹€ 퀸을 놓을 수 μžˆλŠ” μœ„μΉ˜λ₯Ό μ²΄ν¬ν•œλ‹€. 각 ν–‰λ§ˆλ‹€ 퀸은 ν•˜λ‚˜μ”©λ°–μ— λͺ»λ†“μœΌλ―€λ‘œ ν˜„μž¬ ν–‰μ˜ 열듀에 곡격할 수 μžˆλŠ” 퀸이 μžˆλŠ”μ§€ μ²΄ν¬ν•©λ‹ˆλ‹€. λ§Œμ•½ 곡격할 수 μžˆλŠ” 퀸이 μ—†λ‹€λ©΄ ν˜„μž¬ μœ„μΉ˜λ₯Ό history(ν€Έμ˜ μœ„μΉ˜λ₯Ό μ €μž₯ν•˜λŠ” 2차원 λ°°μ—΄)에 μ €μž₯해놓고 λ‹€μŒ ν–‰μœΌλ‘œ μ§„ν–‰ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ μ§„ν–‰ν•˜λ©΄μ„œ κ°€μž₯ λ§ˆμ§€λ§‰ ν–‰κΉŒμ§€ λ„λ‹¬ν•œ κ²½μš°λŠ” λ°°μΉ˜ν•  수 μžˆλŠ” κ²½μš°μ΄λ―€λ‘œ.. 2021. 8. 28.
[Algorithm] μ‘°ν•©(Combination)μ΄λž€? (feat.Swift) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ‘Ÿ μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œμ—μ„œ 정말 λΉˆλ²ˆν•˜κ²Œ μ‚¬μš©λ˜λŠ” "μ‘°ν•©" 에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ μ‘°ν•©μ΄λž€? n개의 μ›μ†Œμ—μ„œ r 개의 μ›μ†Œλ₯Ό μˆœμ„œμ— 상관없이 λ½‘λŠ” 경우의 수 - λ‚˜λ¬΄ μœ„ν‚€ - μˆœμ—΄κ³Ό λ‹€λ₯΄κ²Œ μˆœμ„œλŠ” μ€‘μš”ν•˜μ§€ μ•Šμ•„μš”. μ‰½κ²Œ μ„€λͺ…ν•˜λ©΄ 물건을 사고 총 가격을 κ΅¬ν•˜λŠ” 것과 λΉ„μŠ·ν•΄μš”. 과일둜 예λ₯Ό λ“€λ©΄ 사과,포도,μˆ˜λ°•μ΄ μžˆλ‹€λ©΄ 사과,포도,μˆ˜λ°• 포도,사과,μˆ˜λ°• μˆ˜λ°•,사과,포도 ... λ“± μ–΄λ–€ λ°©μ‹μœΌλ‘œ 사도 총 가격을 λ˜‘κ°™κ² μ£ ? 즉, 이루어진 과일이 λ˜‘κ°™λ‹€λ©΄ ν•˜λ‚˜μ˜ μ‘°ν•©μœΌλ‘œ μƒκ°ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. μ½”λ“œ κ΅¬ν˜„ λ¨Όμ € 경우의 수λ₯Ό 담을 배열을 λ§Œλ“€μ–΄μ€λ‹ˆλ‹€. var cases:[[Int]] = [] combination의 νŒŒλΌλ―Έν„°λ₯Ό μ„€μ •ν•΄μ£ΌλŠ”λ° μΈλ±μŠ€λ“€μ„ λ‹΄κ³ μžˆλŠ” ind.. 2021. 6. 27.
[Algorithm] μˆœμ—΄(Permutation)μ΄λž€? (feat.Swift) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ‘Ÿ μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œμ—μ„œ 정말 λΉˆλ²ˆν•˜κ²Œ μ‚¬μš©λ˜λŠ” "μˆœμ—΄"에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”! μˆœμ—΄μ΄λž€? μ„œλ‘œ λ‹€λ₯Έ n개의 μ›μ†Œμ—μ„œ r개λ₯Ό 쀑볡없이 골라 μˆœμ„œμ— μƒκ΄€μžˆκ²Œ λ‚˜μ—΄ν•˜λŠ” 것을 이λ₯Έλ‹€. - λ‚˜λ¬΄ μœ„ν‚€ - μ‰½κ²Œ μ„€λͺ…ν•˜λ©΄ 쀄 μ„Έμš°κΈ°μ™€ λ˜‘κ°™μ•„μš”. A,B,CλΌλŠ” 학생을 쀄 μ„Έμš°λŠ” 방법은 ABC,ACB,BAC,BCA,CAB,CBA 등이 있겠죠? 이 μ€‘μ—μ„œ 2λͺ…μ˜ ν•™μƒμœΌλ‘œ 쀄 μ„Έμš°λŠ” 방법은 AB,AC,BA,BC,CA,CB 등이 μžˆμ„κ±°μ—μš”. μ½”λ“œ κ΅¬ν˜„ 경우의 μˆ˜λ“€μ„ 담을 이쀑 배열을 λ§Œλ“€μ–΄μ€λ‹ˆλ‹€. var cases:[[Int]] = [] λͺ‡ 개λ₯Ό 뽑을지 μ •ν•΄μ€λ‹ˆλ‹€. let pickCount = 3 본격적으둜 μˆœμ—΄ ν•¨μˆ˜λ₯Ό λ§Œλ“€μ–΄μ€λ‹ˆλ‹€. νŒŒλΌλ―Έν„°λ‘œλŠ” 전체 μΈλ±μŠ€κ°€ λ‹΄κΈ΄.. 2021. 6. 27.
[Algorithm] λ„ˆλΉ„μš°μ„ νƒμƒ‰(BFS,Breadth-First-Search)λž€?(feat.Swift) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ‘Ÿ μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ 트리λ₯Ό νƒμƒ‰ν•˜λŠ”λ° μ“°μ΄λŠ” μ•Œκ³ λ¦¬μ¦˜μΈ λ„ˆλΉ„μš°μ„ νƒμƒ‰(BFS)에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”~ BFSλž€? λ„ˆλΉ„ μš°μ„  탐색은 λ§Ήλͺ©μ  νƒμƒ‰λ°©λ²•μ˜ ν•˜λ‚˜λ‘œ μ‹œμž‘ 정점을 λ°©λ¬Έν•œ ν›„ μ‹œμž‘ 정점에 μΈμ ‘ν•œ λͺ¨λ“  정점듀을 μš°μ„  λ°©λ¬Έν•˜λŠ” 방법이닀. 더 이상 λ°©λ¬Έν•˜μ§€ μ•Šμ€ 정점이 없을 λ•ŒκΉŒμ§€ λ°©λ¬Έν•˜μ§€ μ•Šμ€ λͺ¨λ“  정점듀에 λŒ€ν•΄μ„œλ„ λ„ˆλΉ„ μš°μ„  검색을 μ μš©ν•œλ‹€. 큐λ₯Ό μ‚¬μš©ν•΄μ•Όλ§Œ 레벨 μˆœμ„œλŒ€λ‘œ 접근이 κ°€λŠ₯ν•˜λ‹€. - μœ„ν‚€ λ°±κ³Ό - μ‰½κ²Œ 예제λ₯Ό ν†΅ν•΄μ„œ μ„€λͺ…λ“œλ¦΄κ²Œμš”! μ•„λž˜ 사진과 같이 지ꡬ μ•ˆμ— μ„Έ λ‚˜λΌλ§Œ 있고 λͺ¨λ“  λ‚˜λΌμ™€ λ‚˜λΌμ˜ λ„μ‹œλ“€μ„ νƒμƒ‰ν•œλ‹€κ³  κ°€μ •ν•˜κ² μŠ΅λ‹ˆλ‹€. νƒμƒ‰ν•˜λŠ” 방법은 μ—¬λŸ¬κ°€μ§€κ°€ μžˆκ² μ§€λ§Œ λ¨Όμ € 지ꡬ에 μžˆλŠ” λ‚˜λΌλ₯Ό μ™Όμͺ½λΆ€ν„° μ–΄λ–€ λ„μ‹œλ“€μ΄ μžˆλŠ”μ§€ ν™•μΈν•˜κ³  λ„˜μ–΄κ°€λŠ” 방법은 DF.. 2021. 6. 27.
[Algorithm] 깊이 μš°μ„  탐색(DFS,Depth-First-Search)μ΄λž€? (feat.Swift) μ•ˆλ…•ν•˜μ„Έμš” Foma πŸ‘Ÿ μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œμ—μ„œ μ—„μ²­ λΉˆλ²ˆν•˜κ²Œ 좜제되고 μ•Œμ•„λ‘λ©΄ 정말 μœ μš©ν•œ DFS에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”! DFSλž€? "깊이 μš°μ„  탐색은 λ§Ήλͺ©μ  탐색 λ°©λ²•μ˜ ν•˜λ‚˜λ‘œ νƒμƒ‰νŠΈλ¦¬μ˜ μ΅œκ·Όμ— μ²¨κ°€λœ λ…Έλ“œλ₯Ό μ„ νƒν•˜κ³ , 이 λ…Έλ“œμ— 적용 κ°€λŠ₯ν•œ λ™μž‘μž 쀑 ν•˜λ‚˜λ₯Ό μ μš©ν•˜μ—¬ νŠΈλ¦¬μ— λ‹€μŒ μˆ˜μ€€μ˜ ν•œ 개의 μžμ‹λ…Έλ“œλ₯Ό μ²¨κ°€ν•˜λ©°, μ²¨κ°€λœ μžμ‹ λ…Έλ“œκ°€ λͺ©ν‘œλ…Έλ“œμΌ λ•ŒκΉŒμ§€ μ•žμ˜ μžμ‹ λ…Έλ“œμ˜ 첨가 과정을 λ°˜λ³΅ν•΄ κ°€λŠ” 방식이닀." - μœ„ν‚€ λ°±κ³Ό - 이게 뭔말이야....;;; μ‰½κ²Œ 예제λ₯Ό ν†΅ν•΄μ„œ μ„€λͺ…λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€. μ•„λž˜ 사진과 같이 지ꡬ μ•ˆμ— μ„Έ λ‚˜λΌλ§Œ 있고 λͺ¨λ“  λ‚˜λΌμ™€ λ‚˜λΌμ˜ λ„μ‹œλ“€μ„ νƒμƒ‰ν•œλ‹€κ³  κ°€μ •ν•˜κ² μŠ΅λ‹ˆλ‹€. μ–΄λ–€ μ‚¬λžŒμ€ "λ‚œ λ¨Όμ € μ–΄λ–€ λ‚˜λΌλ“€μ΄ μžˆλŠ”μ§€ λΆ€ν„° ν™•μΈν•˜κ³  κ·Έ λ‚˜λΌ μ•ˆμ— μžˆλŠ”.. 2021. 6. 5.
[Swift] 2018 KAKAO BLIND RECRUITMENT [1μ°¨] 좔석 νŠΈλž˜ν”½ Problem 2021. 5. 19.
[Swift] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ•½μˆ˜μ˜ κ°œμˆ˜μ™€ λ§μ…ˆ Problem μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - μ•½μˆ˜μ˜ κ°œμˆ˜μ™€ λ§μ…ˆ 두 μ •μˆ˜ left와 rightκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§‘λ‹ˆλ‹€. leftλΆ€ν„° rightκΉŒμ§€μ˜ λͺ¨λ“  μˆ˜λ“€ μ€‘μ—μ„œ, μ•½μˆ˜μ˜ κ°œμˆ˜κ°€ 짝수인 μˆ˜λŠ” λ”ν•˜κ³ , μ•½μˆ˜μ˜ κ°œμˆ˜κ°€ ν™€μˆ˜μΈ μˆ˜λŠ” λΊ€ 수λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Ό programmers.co.kr Solution leftλΆ€ν„° rightκΉŒμ§€ 숫자λ₯Ό 1λΆ€ν„° nκΉŒμ§€ λ‚˜λˆ„λ©΄μ„œ λ‚˜λ¨Έμ§€κ°€ 0인 숫자의 갯수(μ•½μˆ˜)λ₯Ό κ΅¬ν•œλ‹€. λ§Œμ•½ μ•½μˆ˜μ˜ κ°―μˆ˜κ°€ 짝이라면 n을 더해주고 홀이면 -n을 더해쀀닀. Source Code λ‹€λ₯Έ μ‚¬λžŒ 풀이 μ œκ³±κ·Όμ— μ†Œμˆ˜μ μ΄ μ—†μœΌλ©΄ μ•½μˆ˜μ˜ κ°―μˆ˜κ°€ ν™€μˆ˜κ³  있으면 μ§μˆ˜μž„. import Foundation func solution(_ left:Int, _ right:Int) -> Int.. 2021. 5. 18.
[Algorithm] ν”Œλ‘œμ΄λ“œ 와샬(Floyd Warshall) μ•Œκ³ λ¦¬μ¦˜μ΄λž€? (feat.Swift) μ•ˆλ…•ν•˜μ„Έμš” Foma🍍 μž…λ‹ˆλ‹€! μ˜€λŠ˜μ€ κ·Έλž˜ν”„ λ¬Έμ œμ—μ„œ μ•„μ£Ό λΉˆλ²ˆν•˜κ²Œ μ‚¬μš©λ˜λŠ” ν”Œλ‘œμ΄λ“œ μ™€μƒ¬μ΄λΌλŠ” μ•Œκ³ λ¦¬μ¦˜μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. λ°”λ‘œ μ‹œμž‘ν• κ²Œμš”! ν”Œλ‘œμ΄λ“œ μ™€μƒ¬μ΄λž€? πŸ€” μœ„ν‚€ λ°±κ³Όμ—λŠ” λ‹€μŒκ³Ό 같이 μ •μ˜λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€. "ν”Œλ‘œμ΄λ“œ 와샬 μ•Œκ³ λ¦¬μ¦˜μ€ λ³€μ˜ κ°€μ€‘μΉ˜κ°€ μŒμ΄κ±°λ‚˜ 양인 (음수 사이클은 μ—†λŠ”) 가쀑 κ·Έλž˜ν”„μ—μ„œ μ΅œλ‹¨ κ²½λ‘œλ“€μ„ μ°ΎλŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€." μ‰½κ²Œ λ§ν•˜λ©΄ λͺ¨λ“  μ΅œλ‹¨ 경둜λ₯Ό μ°ΎλŠ” μ•Œκ³ λ¦¬μ¦˜μ΄μ—μš”. κ·Έλž˜ν”„ μ„€λͺ… μ•„λž˜μ™€ 같은 κ·Έλž˜ν”„κ°€ μžˆλ‹€κ³  κ°€μ •ν• κ²Œμš”. (νŒŒλž€μƒ‰ λ™κ·ΈλΌλ―ΈλŠ” 정점, 사이에 μˆ«μžλŠ” κ±°λ¦¬μž…λ‹ˆλ‹€.) λ§Œμ•½ 1번 μ •μ μ—μ„œ 3번 μ •μ μœΌλ‘œ κ°€λ €λ©΄ μ–΄λ–€ 정점을 μ΄μš©ν•΄μ•Ό κ°€μž₯ μ§§μ„κΉŒμš”? 정닡을 μ•ŒκΈ° μœ„ν•΄μ„  쀑간에 λͺ¨λ“  정점을 κ±°μ³μ„œ κ°„ λ‹€μŒ κ°€μž₯ 짧은 거리λ₯Ό ꡬ해야 ν•  것 μž…λ‹ˆλ‹€. 1번 -> 2번 -> 3번 3.. 2021. 5. 17.
728x90
λ°˜μ‘ν˜•