์ˆœ์ฐจ ํƒ์ƒ‰(Sequential search) ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ฆฌ์ŠคํŠธ ์•ˆ์— ์žˆ๋Š” ์›์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ์ˆœ์ฐจ์ ์œผ๋กœ ๋น„๊ตํ•˜๋ฉด์„œ ํƒ์ƒ‰ํ•œ๋‹ค๊ณ  ํ•˜์—ฌ ์ˆœ์ฐจ ํƒ์ƒ‰์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์ž๋ฃŒ๋ถ€ํ„ฐ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•˜๋ฉด์„œ ๊ฐ™์€ ๊ฐ’์ด ๋‚˜์˜ค๋ฉด ๊ทธ ์œ„์น˜๋ฅผ ๊ฒฐ๊ณผ๋กœ ๋Œ๋ ค์ฃผ๊ณ , ๋ฆฌ์ŠคํŠธ ๋๊นŒ์ง€ ์ฐพ์•„๋„ ๊ฐ™์€ ๊ฐ’์ด ๋‚˜์˜ค์ง€ ์•Š์œผ๋ฉด -1์„ ๋Œ๋ ค์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

def search_list(v, num):
  for i in range(0, len(v)-1):
    if num == v[i]:
      return i

  return -1

v = [17, 92, 18, 33, 58, 7, 33, 42]
print(search_list(v, 18))
print(search_list(v, 33)) # ์ฒซ ๋ฒˆ์งธ ์œ„์น˜๋งŒ ๊ฒฐ๊ณผ๋กœ ๋Œ๋ ค์ค๋‹ˆ๋‹ค.
print(search_list(v, 900))

๊ณ„์‚ฐ ๋ณต์žก๋„๋Š” O(n)

์—ฐ์Šต๋ฌธ์ œ

๋ฆฌ์ŠคํŠธ์—์„œ ํŠน์ • ์ˆซ์ž์˜ ์œ„์น˜๋ฅผ ์ „๋ถ€ ์ฐพ๊ธฐ

์ฐพ๋Š” ๊ฐ’์ด ๋‚˜์˜ค๋Š” ๋ชจ๋“  ์œ„์น˜๋ฅผ ๋ฆฌ์ŠคํŠธ๋กœ ๋Œ๋ ค์ฃผ๋Š” ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋งŒ๋“ค๊ณ , ์ฐพ๋Š” ๊ฐ’์ด ๋ฆฌ์ŠคํŠธ์— ์—†๋‹ค๋ฉด ๋นˆ ๋ฆฌ์ŠคํŠธ์ธ []๋ฅผ ๋Œ๋ ค์ค๋‹ˆ๋‹ค.

def search_list(v, num):
  result = [] # ์ƒˆ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๊ฒฐ๊ด๊ฐ’์„ ์ €์žฅ
  for i in range(0, len(v)-1):
    if num == v[i]:
      result.append(i)

  return result

v = [17, 92, 18, 33, 58, 7, 33, 42]
print(search_list(v, 18))
print(search_list(v, 33))
print(search_list(v, 900))

๊ณ„์‚ฐ ๋ณต์žก๋„๋Š” O(n)

ํ•™์ƒ ๋ฒˆํ˜ธ์— ํ•ด๋‹นํ•˜๋Š” ํ•™์ƒ ์ด๋ฆ„ ์ฐพ๊ธฐ

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•™์ƒ ๋ฒˆํ˜ธ์™€ ์ด๋ฆ„์ด ๋ฆฌ์ŠคํŠธ๋กœ ์ฃผ์–ด์กŒ์„ ๋•Œ ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•™์ƒ ๋ฒˆํ˜ธ์— ํ•ด๋‹นํ•˜๋Š” ์ด๋ฆ„์„ ์ˆœ์ฐจ ํƒ์ƒ‰์œผ๋กœ ์ฐพ์•„ ๋Œ๋ ค์ฃผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ธฐ. ํ•ด๋‹นํ•˜๋Š” ํ•™์ƒ ๋ฒˆํ˜ธ๊ฐ€ ์—†์œผ๋ฉด ๋ฌผ์Œํ‘œ(?)๋ฅผ ๋Œ๋ ค์ค๋‹ˆ๋‹ค.
์ฐธ๊ณ ๋กœ ํ•™์ƒ ๋ฒˆํ˜ธ๊ฐ€ 39๋ฒˆ์ด๋ฉด โ€œJustinโ€, 14๋ฒˆ์ด๋ฉด โ€œJohnโ€์„ ๋Œ๋ ค์ค๋‹ˆ๋‹ค.

stu_no = [39, 14, 67, 105]
stu_name = ["Justin", "john", "Mike", "Summer"]

def get_name(stu_no, stu_name, find_num):
  for i in range(0, len(stu_no)):
    if find_num == stu_no[i]:
      return stu_name[i]
  
  return "?"

stu_no = [39, 14, 67, 105]
stu_name = ["Justin", "john", "Mike", "Summer"]

find_num = int(input())
print(get_name(stu_no, stu_name, find_num))