πŸ—’οΈ μ±… & κ°•μ˜ 정리

πŸ—’οΈ μ±… & κ°•μ˜ 정리/πŸ—οΈ λˆ„κ΅¬λ‚˜ μžλ£Œκ΅¬μ‘°μ™€ μ•Œκ³ λ¦¬μ¦˜

10μž₯ μž¬κ·€λ₯Ό μ‚¬μš©ν•œ μž¬κ·€μ  반볡

μž¬κ·€λŠ” ν•¨μˆ˜κ°€ 자기 μžμ‹ μ„ ν˜ΈμΆœν•  λ•Œλ₯Ό λœ»ν•˜λŠ” μš©μ–΄λ‹€. 1. 루프 λŒ€μ‹  μž¬κ·€ 루프λ₯Ό μ‚¬μš©ν•  수 μžˆλŠ” 경우라면 거의 λŒ€λΆ€λΆ„ μž¬κ·€λ„ μ“Έ 수 μžˆλ‹€. μž¬κ·€λ₯Ό μ“Έ 수 μžˆλ‹€κ³  ν•΄μ„œ 무쑰건 μž¬κ·€λ₯Ό 써야 ν•œλ‹€λŠ” 것은 μ•„λ‹ˆλ‹€. μž¬κ·€λŠ” λͺ…μΎŒν•œ μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆλŠ” ν•˜λ‚˜μ˜ 도ꡬ닀. 2. κΈ°μ € 쑰건 κΈ°μ € 쑰건(base case): ν•¨μˆ˜κ°€ λ°˜λ³΅λ˜μ§€ μ•ŠλŠ” 경우 λͺ¨λ“  μž¬κ·€ ν•¨μˆ˜μ—λŠ” ν•¨μˆ˜κ°€ λ¬΄ν•œλŒ€λ‘œ ν˜ΈμΆœλ˜μ§€ μ•Šκ²Œ ν•˜λŠ” κΈ°μ € 쑰건이 적어도 ν•˜λ‚˜ μžˆμ–΄μ•Ό ν•œλ‹€. 3. μž¬κ·€ μ½”λ“œ 읽기 μž¬κ·€ μ½”λ“œλ₯Ό μ½λŠ” 방법 κΈ°μ € 쑰건을 μ°ΎλŠ”λ‹€. κΈ°μ € μ‘°κ±΄μ—μ„œ ν•¨μˆ˜κ°€ μ–΄λ–»κ²Œ λ™μž‘ν•˜λŠ”μ§€ μ‚΄νŽ΄λ³Έλ‹€. “λμ—μ„œ 두 번째” 쑰건을 μ°ΎλŠ”λ‹€. 곧 λ³΄μ΄κ² μ§€λ§Œ μ΄λŠ” κΈ°μ € 쑰건 λ°”λ‘œ μ „ 쑰건이닀. “λμ—μ„œ 두 번째” μ‘°κ±΄μ—μ„œ ν•¨μˆ˜κ°€ μ–΄λ–»κ²Œ λ™μž‘ν•˜λŠ”μ§€ μ‚΄νŽ΄λ³Έλ‹€. 방금 λΆ„μ„ν•œ..

πŸ—’οΈ μ±… & κ°•μ˜ 정리/πŸ—οΈ λˆ„κ΅¬λ‚˜ μžλ£Œκ΅¬μ‘°μ™€ μ•Œκ³ λ¦¬μ¦˜

9μž₯ μŠ€νƒκ³Ό 큐둜 κ°„κ²°ν•œ μ½”λ“œ 생성

9μž₯μ—μ„œλŠ” μŠ€νƒκ³Ό 큐λ₯Ό μ•Œμ•„λ³Έλ‹€. μŠ€νƒκ³Ό νλŠ” μž„μ‹œ 데이터λ₯Ό μ²˜λ¦¬ν•  수 μžˆλŠ” κ°„κ²°ν•œ 도ꡬ닀. 운영 체제 μ•„ν‚€ν…μ²˜λΆ€ν„° 좜λ ₯, 데이터 μˆœνšŒμ— 이λ₯΄κΈ°κΉŒμ§€ μŠ€νƒκ³Ό 큐λ₯Ό μž„μ‹œ μ»¨ν…Œμ΄λ„ˆλ‘œ ν™œμš©ν•˜μ—¬ λ›°μ–΄λ‚œ μ•Œκ³ λ¦¬μ¦˜μ„ λ§Œλ“€ 수 μžˆλ‹€. 1. μŠ€νƒ μŠ€νƒμ΄ 데이터λ₯Ό μ €μž₯ν•˜λŠ” 방법은 λ°°μ—΄κ³Ό κ°™λ‹€. 즉, μ›μ†Œλ“€μ˜ λ¦¬μŠ€νŠΈλ‹€. μŠ€νƒμ—λŠ” λ‹€μŒκ³Ό 같은 μ œμ•½μ΄ μžˆλ‹€. λ°μ΄ν„°λŠ” μŠ€νƒμ˜ λμ—λ§Œ μ‚½μž…ν•  수 μžˆλ‹€. λ°μ΄ν„°λŠ” μŠ€νƒμ˜ λμ—μ„œλ§Œ μ‚­μ œν•  수 μžˆλ‹€. μŠ€νƒμ˜ λ§ˆμ§€λ§‰ μ›μ†Œλ§Œ 읽을 수 μžˆλ‹€. μ ‘μ‹œ 더미λ₯Ό μŒ“μ•„μ˜¬λ¦° κ²ƒμ²˜λŸΌ 생각해도 μ’‹λ‹€. μŠ€νƒμ˜ 끝(μ‚½μž…, μ‚­μ œ, 읽기 κ°€λŠ₯)을 top, 밑을 bottom이라고 ν•œλ‹€. μŠ€νƒμ— μƒˆ 값을 μ‚½μž…ν•˜λŠ” 것을 μŠ€νƒμ— ν‘Έμ‹œν•œλ‹€κ³ λ„ λ§ν•œλ‹€. μŠ€νƒμ˜ λμ—μ„œ μ›μ†Œλ₯Ό μ œκ±°ν•˜λŠ” 것을 pop이라고 ν•œλ‹€. LIFO - L..

πŸ—’οΈ μ±… & κ°•μ˜ 정리/πŸ—οΈ λˆ„κ΅¬λ‚˜ μžλ£Œκ΅¬μ‘°μ™€ μ•Œκ³ λ¦¬μ¦˜

8μž₯ ν•΄μ‹œ ν…Œμ΄λΈ”λ‘œ 맀우 λΉ λ₯Έ 룩업

✍🏻 λˆ„μžμ•Œ μ•žλΆ€λΆ„μ€ κΈ°λ³Έ λ‚΄μš©μ΄κ³ , λ‹€μ‹œ 곡뢀할 ν•„μš”κ°€ μ—†λ‹€κ³  μƒκ°ν–ˆλ‹€. κ·Έλž˜μ„œ 정리에 쑰금 μ†Œν™€ν•¨μ΄ μžˆμ—ˆλ‹€. κ·ΈλŸ¬λ‚˜ 졜근 쳀던 μ½”λ”© ν…ŒμŠ€νŠΈμ—μ„œ CS 지식 쀑 선택 μ •λ ¬κ³Ό 버블 정렬에 λŒ€ν•΄ λ¬Όμ–΄λ³΄λŠ” λ¬Έμ œκ°€ λ‚˜μ™”λ‹€. 와! 마침 λˆ„μžμ•Œ 4μž₯κ³Ό 5μž₯이 버블 μ •λ ¬κ³Ό 선택 정렬에 λŒ€ν•΄ μžμ„Έν•˜κ²Œ μ„€λͺ…ν•˜κ³  μžˆμ–΄μ„œ ν•΄λ‹Ή 문제λ₯Ό 맞좜 수 μžˆμ—ˆλ‹€. μ—­μ‹œ κ³΅λΆ€λŠ” 기본이 μ€‘μš”ν•˜λ‹€λŠ” 것을 λ‹€μ‹œ κΉ¨λ‹¬μ•˜λ‹€. κΈ°λ‘ν•˜μ§€ μ•ŠμœΌλ©΄ κΉŒλ¨Ήμ„ 것 κ°™μ•„μ„œ λŠμŠ¨ν•΄μ§€μ§€ λ§μžλŠ” λ‹€μ§μœΌλ‘œ μ—¬κΈ° κΈ°λ‘ν•œλ‹€. 배열이 μ •λ ¬λ˜μ–΄ μžˆμ§€ μ•Šλ‹€λ©΄ μ»΄ν“¨ν„°λŠ” μ„ ν˜• 검색을 ν•΄μ•Ό ν•˜λ―€λ‘œ νŠΉμ • 값이 λ°°μ—΄ 내에 μ‘΄μž¬ν•˜λŠ”μ§€ κ²€μƒ‰ν•˜κΈ° μœ„ν•΄ O(N)의 μˆ˜ν–‰ 단계가 ν•„μš”ν•˜λ‹€. μ •λ ¬λœ 배열이라면 컴퓨터가 이진 검색을 μˆ˜ν–‰ν•  수 μžˆμœΌλ―€λ‘œ O(log N)의 μˆ˜ν–‰ 단계가 ν•„μš”ν•˜λ‹€. κ·ΈλŸ¬λ‚˜..

πŸ—’οΈ μ±… & κ°•μ˜ 정리/πŸ—οΈ λˆ„κ΅¬λ‚˜ μžλ£Œκ΅¬μ‘°μ™€ μ•Œκ³ λ¦¬μ¦˜

6μž₯ 긍정적인 μ‹œλ‚˜λ¦¬μ˜€ μ΅œμ ν™”

μ–΄λ–€ 문제 해결을 μœ„ν•΄ μ—¬λŸ¬ μ•Œκ³ λ¦¬μ¦˜ 쀑 ν•˜λ‚˜λ₯Ό 선택할 λ•ŒλŠ”, λͺ¨λ“  μ‹œλ‚˜λ¦¬μ˜€λ₯Ό κ³ λ €ν•˜λŠ” λŠ₯λ ₯이 ν•„μš”ν•˜λ‹€. 1. μ‚½μž… μ •λ ¬ 버블 μ •λ ¬κ³Ό 선택 μ •λ ¬μ˜ μ‹œκ°„ λ³΅μž‘λ„λŠ” O(N^2)으둜 κ°™μ§€λ§Œ μ‹€μ œ μ‹€ν–‰λ˜λŠ” 단계 μˆ˜λŠ” 선택 정렬이 두 λ°° 적닀. 즉, 두 λ°° λΉ λ₯΄λ‹€. 6μž₯μ—μ„œλŠ” μ‚½μž… 정렬에 λŒ€ν•΄ λ°°μš°λ©΄μ„œ μ΅œμ•…μ˜ μ‹œλ‚˜λ¦¬μ˜€κ°€ μ•„λ‹Œ λ‹€λ₯Έ μ‹œλ‚˜λ¦¬μ˜€λ₯Ό λΆ„μ„ν•˜λŠ” 것에 μ–΄λ–€ μž₯점이 μžˆλŠ”μ§€ μ•Œμ•„λ³Έλ‹€. μ‚½μž… μ •λ ¬μ˜ μˆ˜ν–‰ μˆœμ„œ 첫 번째 pass throughμ—μ„œ 두 번째 μ…€μ˜ 값을 μ‚­μ œν•˜κ³  이 값을 μž„μ‹œ λ³€μˆ˜μ— μ €μž₯ν•œλ‹€. μ‚­μ œν•œ 곡간은 곡백으둜 λ‚¨λŠ”λ‹€. 곡백 κΈ°μ€€ μ™Όμͺ½μ˜ κ°’κ³Ό μ°¨λ‘€λŒ€λ‘œ λΉ„κ΅ν•˜μ—¬ μ˜¬λ°”λ₯Έ μœ„μΉ˜μ— μž„μ‹œ λ³€μˆ˜μ˜ 값을 μ‚½μž…ν•œλ‹€. 두 번째 pass throughλŠ” μ„Έ 번째 μ…€μ˜ 값을 μ‚­μ œν•˜κ³ , μœ„μ˜ pass throughλ₯Ό 반..

πŸ—’οΈ μ±… & κ°•μ˜ 정리/πŸ—οΈ λˆ„κ΅¬λ‚˜ μžλ£Œκ΅¬μ‘°μ™€ μ•Œκ³ λ¦¬μ¦˜

5μž₯ λΉ… 였λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” μ½”λ“œ μ΅œμ ν™”

λΉ… μ˜€λŠ” μ•Œκ³ λ¦¬μ¦˜μ„ λΉ„κ΅ν•˜κ³  주어진 상황에 μ•Œλ§žμ€ μ•Œκ³ λ¦¬μ¦˜μ„ κ²°μ •ν•˜κ²Œ ν•΄ μ£ΌλŠ” 쒋은 λ„κ΅¬μ΄μ§€λ§Œ, μœ μΌν•œ λ„κ΅¬λŠ” μ•„λ‹ˆλ‹€. 1. 선택 μ •λ ¬ 선택 μ •λ ¬μ˜ μ‹œν€€μŠ€ λ°°μ—΄μ˜ 각 셀을 μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½μœΌλ‘œ ν™•μΈν•˜λ©΄μ„œ μ–΄λ–€ 값이 μ΅œμ†Ÿκ°’μΈμ§€ νŒλ‹¨ν•˜κ³  κ°€μž₯ μž‘μ€ 값을 κΈ°λ‘ν•œλ‹€. μ΅œμ†Ÿκ°’κ³Ό pass throughλ₯Ό μ‹œμž‘ν–ˆμ„ λ•Œμ˜ 값을 κ΅ν™˜ν•œλ‹€. pass throughλ₯Ό λ°˜λ³΅ν•œλ‹€. 2. 선택 μ •λ ¬ μ‹€μ œλ‘œ 해보기 & 3. 선택 μ •λ ¬ κ΅¬ν˜„ (Kotlin) fun main() { selectionSort(arrayOf(10, 9, 4, 6, 7, 8, 3, 2, 11, 1)).forEach { print("$it ") } } fun selectionSort(arr: Array): Array { for (i in arr.indices)..

dev_sia
'πŸ—’οΈ μ±… & κ°•μ˜ 정리' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘ (3 Page)