[TIL] 211009

Lee SyongΒ·2021λ…„ 10μ›” 9일
0

TIL

λͺ©λ‘ 보기
52/204
post-thumbnail

πŸ“ 였늘 ν•œ 것

  1. μžλ°”μŠ€ν¬λ¦½νŠΈ κ°•μ˜ 볡슡

  2. 자료 ꡬ쑰 δΈ­ λ°°μ—΄ - 읽기, 검색, μ‚½μž…, μ‚­μ œ


πŸ“– ν•™μŠ΅ 자료

  1. λ“œλ¦Όμ½”λ”© 'ν”„λ‘ νŠΈμ—”λ“œ ν•„μˆ˜ λΈŒλΌμš°μ € 101' κ°•μ˜

  2. λ…Έλ§ˆλ“œ 코더 유튜브 'μ•Œκ³ λ¦¬μ¦˜.데이터ꡬ쑰 with Nico' 1 ~ 7편 (밑에 μ •λ¦¬λŠ” 2편만)

  3. μ•Œκ³ λ¦¬μ¦˜ 도감 μ•±

    μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ‚¬μš©ν•˜λŠ” 자료 ꡬ쑰와 μ•Œκ³ λ¦¬μ¦˜ κ°•μ˜λŠ” μ •λ§λ‘œ μ°ΎκΈ°κ°€ μ–΄λ ΅λ‹€. μ°ΎκΈ° μ–΄λ €μš΄ μ΄μœ κ°€ μžˆλŠ” κ±° κ°™κΈ΄ ν•˜μ§€λ§Œ. κ²°κ΅­ μž…λ¬Έ μˆ˜μ€€μ˜ 책을 ν•œ ꢌ μ£Όλ¬Έν–ˆλ‹€. λ…Έλ§ˆλ“œ 코더 κ°•μ˜λŠ” 이해λ₯Ό μœ„ν•΄ μ• λ‹ˆλ©”μ΄μ…˜ μœ„μ£Όλ‘œ μ„€λͺ…이 λ˜μ–΄ μžˆμ–΄μ„œ ν”„λ‘œκ·Έλž˜λ° 언어와 상관없이 맛보기 λŠλ‚ŒμœΌλ‘œ λ“£κΈ° 쒋은 κ±° κ°™λ‹€. μΆ”κ°€λ‘œ μ•Œκ³ λ¦¬μ¦˜ λ„κ°μ΄λΌλŠ” 앱을 μ΄μš©ν–ˆλ‹€.


πŸ“š 배운 것

1. λΈŒλΌμš°μ € 101 κ°•μ˜ 볡슡

이둠 κ°•μ˜λ₯Ό 2λ°°μ†μœΌλ‘œ μ „λΆ€ λ‹€μ‹œ λ“€μœΌλ©΄μ„œ 배운 λ‚΄μš©μ„ μ •λ¦¬ν–ˆλ‹€
ν•„κΈ°ν•œ λ‚΄μš©λ„ ν•¨κ»˜ λ³΄λ©΄μ„œ κ³΅λΆ€ν–ˆλ˜ 것듀을 λ‹€μ‹œκΈˆ μƒκΈ°ν•˜λŠ” μ‹œκ°„μ„ κ°€μ‘Œλ‹€


2. 자료 ꡬ쑰

데이터λ₯Ό μ •λ¦¬ν•˜λŠ” 것

1) μ‹œκ°„ λ³΅μž‘λ„(Time Complex)

  • 자료 ꡬ쑰의 μ—°μ‚° ν˜Ήμ€ μ•Œκ³ λ¦¬μ¦˜μ΄ μ–Όλ§ˆλ‚˜ λΉ λ₯΄κ³  λŠλ¦°μ§€λ₯Ό μΈ‘μ •ν•˜λŠ” 것

  • μ‹œκ°„μ΄ μ•„λ‹ˆλΌ '단계'의 κ°œλ… (단계가 μ μ„μˆ˜λ‘ μ„±λŠ₯이 μ’‹λ‹€)

2) 자료 ꡬ쑰의 μ—°μ‚°

μ—¬λŸ¬ 자료 ꡬ쑰 쀑 λ°°μ—΄(Array)을 μ˜ˆμ‹œλ‘œ 듦

πŸ’‘ 읽기

ν”„λ‘œκ·Έλž˜λ° λ³€μˆ˜λ“€μ€ RAM(Random Access Memory)에 μ €μž₯λœλ‹€. RAM에 μ €μž₯된 λ°μ΄ν„°μ—λŠ” 랜덀으둜 접속할 수 있기 λ•Œλ¬Έμ— 데이터λ₯Ό λΉ λ₯΄κ²Œ μ½μ–΄μ˜¬ 수 μžˆλ‹€.

배열을 λ§Œλ“€ λ•ŒλŠ” RAM μ•ˆμ— μš”μ†Œλ“€μ΄ λ‚˜λž€νžˆ μœ„μΉ˜ν•  수 μžˆλ„λ‘ λ°°μ—΄μ˜ 길이λ₯Ό μ„€μ •ν•΄μ£ΌκΈ° λ•Œλ¬Έμ—, μ»΄ν“¨ν„°λŠ” 기본적으둜 λ°°μ—΄μ˜ 길이와 ν•¨κ»˜ 배열이 μ–΄λ””μ„œ μ‹œμž‘ν•˜λŠ”μ§€λ₯Ό μ•Œκ³  μžˆλ‹€.

λ”°λΌμ„œ, 인덱슀λ₯Ό μ΄μš©ν•΄ 데이터(λ°°μ—΄μ˜ μš”μ†Œλ“€)λ₯Ό λΉ λ₯΄κ²Œ μ½μ–΄μ˜¬ 수 μžˆλ‹€.

μ΄λ•Œ 배열에 μš”μ†Œκ°€ λͺ‡ κ°œκ°€ μžˆλ“  간에 인덱슀λ₯Ό μ΄μš©ν•΄ μš”μ†Œλ₯Ό μ½μ–΄λ‚΄λŠ” μ†λ„λŠ” κ°™μœΌλ―€λ‘œ μ—°μ‚°μ˜ μ†λ„λŠ” λ°°μ—΄μ˜ 길이와 관계 μ—†λ‹€.

πŸ’‘ 검색

  • μ„ ν˜• 검색 (Linear Search)

    인덱슀 0λΆ€ν„° μˆœμ„œλŒ€λ‘œ ν•˜λ‚˜μ”© 확인해봐야 ν•œλ‹€.
    μ΅œμ•…μ˜ 경우, λ°°μ—΄μ˜ μ²˜μŒλΆ€ν„° λκΉŒμ§€ 확인을 해도 μ°ΎλŠ” 값이 없을 수 μžˆλ‹€.

  • 이진 검색 (Binary Search)

πŸ’‘ μ‚½μž…

ex) 길이λ₯Ό 5둜 μ„€μ •ν•œ 배열에 4개의 μš”μ†Œλ§Œ λ“€μ–΄ μžˆλŠ” 경우, μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό μ‚½μž…ν•˜κ³ μž ν•  λ•Œ

곡간은 이미 ν™•λ³΄λ˜μ–΄ μžˆμœΌλ―€λ‘œ, λ¬Έμ œλŠ” μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό '어디에' μΆ”κ°€ν•  것인가이닀. 3가지 μ‹œλ‚˜λ¦¬μ˜€λ₯Ό 생각해볼 수 μžˆλ‹€.

졜고의 μ‹œλ‚˜λ¦¬μ˜€λŠ” λ°°μ—΄μ˜ 맨 뒀에 μΆ”κ°€ν•˜λŠ” 것이닀. μ»΄ν“¨ν„°λŠ” 기본적으둜 λ°°μ—΄μ˜ 길이와 ν•¨κ»˜ 배열이 μ–΄λ””μ„œ μ‹œμž‘ν•˜λŠ”μ§€λ₯Ό μ•Œκ³  μžˆμœΌλ―€λ‘œ λ°°μ—΄μ˜ 맨 λ’€λ‘œ μ΄λ™ν•΄μ„œ μΆ”κ°€ν•˜λ©΄ λΉ λ₯΄κ²Œ 끝이 λ‚œλ‹€.

κ·Έ λ‹€μŒ μ‹œλ‚˜λ¦¬μ˜€λŠ” λ°°μ—΄μ˜ 쀑간에 μΆ”κ°€ν•˜λŠ” 것이닀. λ°°μ—΄μ˜ 쀑간에 μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό μΆ”κ°€ν•  곡간을 λ§Œλ“€κΈ° μœ„ν•΄, λ°°μ—΄ μ€‘κ°„μ˜ λ‹€μŒμ— μœ„μΉ˜ν•œ μš”μ†Œλ“€μ„ μ „λΆ€ ν•˜λ‚˜μ”© λ’€λ‘œ λ°€μ–΄λ‚΄μ•Ό ν•œλ‹€.

μ΅œμ•…μ˜ μ‹œλ‚˜λ¦¬μ˜€λŠ” λ°°μ—΄μ˜ 맨 μ•žμ— μΆ”κ°€ν•˜λŠ” 것이닀. λ°°μ—΄μ˜ 맨 μ•žμ— μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό μΆ”κ°€ν•  곡간을 λ§Œλ“€κΈ° μœ„ν•΄, λ°°μ—΄μ˜ λͺ¨λ“  μš”μ†Œλ“€μ„ μ „λΆ€ ν•˜λ‚˜μ”© λ’€λ‘œ λ°€μ–΄λ‚΄μ•Ό ν•˜λ―€λ‘œ μ‹œκ°„μ΄ 였래 κ±Έλ¦°λ‹€.

ex) 길이λ₯Ό 5둜 μ„€μ •ν•œ 배열에 5개의 μš”μ†Œκ°€ 꽉 λ“€μ–΄μ°¨ μžˆλŠ” 경우, μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό μ‚½μž…ν•˜κ³ μž ν•  λ•Œ

또 λ‹€λ₯Έ μ΅œμ•…μ˜ μ‹œλ‚˜λ¦¬μ˜€μ΄λ‹€. 5보닀 큰 배열을 λ§Œλ“€μ–΄μ„œ 이전 배열을 λ³΅μ‚¬ν•œ ν›„ μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό μΆ”κ°€λ₯Ό ν•΄μ•Ό ν•˜λ―€λ‘œ μ‹œκ°„μ΄ 였래 κ±Έλ¦°λ‹€.

πŸ’‘ μ‚­μ œ

λ°°μ—΄μ˜ 맨 λ’€ μš”μ†Œλ₯Ό μ‚­μ œν•  λ•ŒλŠ”, 맨 λ’€λ‘œ μ΄λ™ν•΄μ„œ μ‚­μ œν•΄μ£Όλ©΄ λΉ λ₯΄κ²Œ λλ‚œλ‹€.

λ°°μ—΄μ˜ 쀑간 μš”μ†Œλ₯Ό μ‚­μ œν•  λ•ŒλŠ”, 쀑간 μš”μ†Œλ₯Ό μ‚­μ œν•œ ν›„ 곡백을 λ©”κΎΈκΈ° μœ„ν•΄ κ·Έ μ΄ν›„μ˜ μš”μ†Œλ“€μ„ μ „λΆ€ μ•žμœΌλ‘œ 당겨와야 ν•œλ‹€.

λ°°μ—΄μ˜ 맨 μ•ž μš”μ†Œλ₯Ό μ‚­μ œν•  λ•ŒλŠ”, 맨 μ•ž μš”μ†Œλ₯Ό μ‚­μ œν•œ ν›„ 곡백을 λ©”κΎΈκΈ° μœ„ν•΄ 남은 λͺ¨λ“  μš”μ†Œλ“€μ„ μ „λΆ€ μ•žμœΌλ‘œ 당겨와야 ν•œλ‹€.


✨ 내일 ν•  것

  1. λ…Έλ§ˆλ“œ 코더 유튜브 κ°•μ˜ λ‚΄μš© λ§ˆμ € 정리 (3 ~ 7편)

  2. λ“œλ¦Όμ½”λ”© 유튜브 'μžλ°”μŠ€ν¬λ¦½νŠΈ 기초 κ°•μ˜' 볡슡 (1 ~ 9편)

profile
λŠ₯λ™μ μœΌλ‘œ μ‚΄μž, ν–‰λ³΅ν•˜κ²ŒπŸ˜

0개의 λŒ“κΈ€