๐Ÿ’ป [์ฝ”ํ…Œ03] 8์žฅ ํ•ด์‹œ

๊น€๋ฏธ์—ฐยท2024๋…„ 2์›” 4์ผ
0

8์žฅ. ํ•ด์‹œ

08-1. ํ•ด์‹œ์˜ ๊ฐœ๋…

1) ํ•ด์‹œ

  • ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ณ€ํ™˜ํ•œ ๊ฐ’์„ ์ธ๋ฑ์Šค๋กœ ์‚ผ์•„ ํ‚ค์™€ ๊ฐ’์„ ์ €์žฅํ•ด์„œ ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ํƒ์ƒ‰์„ ์ œ๊ณตํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

2) ํŠน์ง•

  • ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ๋™์ž‘
  • ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ O(1)์—์„œ ๋ฐ”๋กœ ์ฐพ๊ธฐ ๊ฐ€๋Šฅ

3) ํ•ด์‹œ์˜ ํŠน์„ฑ์„ ํ™œ์šฉํ•˜๋Š” ๋ถ„์•ผ

  • ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ด€๋ฆฌ : ํ•ด์‹ฑํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ €์žฅ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ๋ฑ์‹ฑ : ํšจ์œจ์ ์œผ๋กœ ๊ฒ€์ƒ‰
  • ๋ธ”๋ก์ฒด์ธ : ์ด์ „ ๋ธ”๋ก์˜ ํ•ด์‹œ๊ฐ’ ํฌํ•จํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ํ™•์ธ ๊ฐ€๋Šฅ

    ๐Ÿ’ก [์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ] ํ•ด์‹œ๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
    -ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ํšŸ์ˆ˜๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ
    -ํŠน์ • ์ •๋ณด์™€ ๋งคํ•‘ํ•˜๋Š” ๊ฐ’์˜ ๊ด€๊ณ„๋ฅผ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…์ด ์žˆ๋Š” ๊ฒฝ์šฐ

08-2. ํ•ด์‹œ ํ•จ์ˆ˜

  • ํŒŒ์ด์ฌ์˜ ๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒํ˜•์€ ํ•ด์‹œ์™€ ๊ฑฐ์˜ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘

1) ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ๊ณ ๋ คํ•  ๋‚ด์šฉ

  • ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ ๋ณ€ํ™˜ํ•œ ๊ฐ’์€ ํ•ด์‹œ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๋ฅผ ๋„˜์œผ๋ฉด ์•ˆ๋œ๋‹ค
  • ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ ๋ณ€ํ™˜ํ•œ ๊ฐ’์˜ ์ถฉ๋Œ์€ ์ตœ๋Œ€ํ•œ ์ ๊ฒŒ ๋ฐœ์ƒํ•ด์•ผ ํ•œ๋‹ค

2) ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํ•ด์‹œ ํ•จ์ˆ˜ ์•Œ์•„๋ณด๊ธฐ

  • ๋‚˜๋ˆ—์…ˆ๋ฒ• : ํ‚ค๋ฅผ ์†Œ์ˆ˜๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•(๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ)
  • ๊ณฑ์…ˆ๋ฒ• : ํ™ฉ๊ธˆ๋น„๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๋ฌธ์ž์—ด ํ•ด์‹ฑ : ํ‚ค์˜ ์ž๋ฃŒํ˜•์ด ๋ฌธ์ž์—ด์ธ ๊ฒฝ์šฐ, ๋ฌธ์ž์—ด์˜ ๋ฌธ์ž๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์ด ์ˆซ์ž๋“ค์„ ๋‹คํ•ญ์‹์˜ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ•ด์‹ฑํ•˜๋Š” ๋ฐฉ๋ฒ•

08-3. ์ถฉ๋Œ ์ฒ˜๋ฆฌ

1) ์ฒด์ด๋‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ

  • ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹น ๋ฒ„ํ‚ท์— ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ๋กœ ๊ฐ™์€ ํ•ด์‹œ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ํ•ด์‹œ ํ…Œ์ด๋ธ” ๊ณต๊ฐ„ ํ™œ์šฉ์„ฑ ๊ฐ์†Œ
  • ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ ๊ฐ์†Œ

2) ๊ฐœ๋ฐฉ ์ฃผ์†Œ๋ฒ•์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ

  • ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋นˆ ๋ฒ„ํ‚ท์„ ์ฐพ์•„ ์ถฉ๋Œ๊ฐ’์„ ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ์ฒด์ด๋‹ ๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉ
  • ์„ ํ˜• ํƒ์‚ฌ ๋ฐฉ์‹ : ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค๋ฅธ ๋นˆ ๋ฒ„ํ‚ท์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ์ด์ค‘ ํ•ด์‹ฑ ๋ฐฉ์‹ : 2๊ฐœ์˜ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
    - ๋‘ ๋ฒˆ์งธ ํ•ด์‹œํ•จ์ˆ˜๋Š” ์ฒซ ๋ฒˆ์งธ ํ•ด์‹œ ํ•จ์ˆ˜๋กœ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹น ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์–ด๋–ป๊ฒŒ ์œ„์น˜๋ฅผ ์ •ํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ์—ญํ• 

08-4. ๋ชธํ’€๊ธฐ ๋ฌธ์ œ

  • ๋ฌธ์ œ18_๋‘ ๊ฐœ์˜ ์ˆ˜๋กœ ํŠน์ •๊ฐ’ ๋งŒ๋“ค๊ธฐ
'''
1. arr๊ฐ€ ๋“ค์–ด์˜จ๋‹ค.
2. arr ์ค‘ ์š”์†Œ ๋”ํ•ด์„œ target์ด ๋˜๋Š” ๊ฒƒ์ด ์žˆ๋Š”์ง€ ํ™•์ธ
3. ์žˆ์œผ๋ฉด True, ์—†์œผ๋ฉด False
'''

def solution(arr, target):
    dic_arr = dict()
    for key in arr:
        dic_arr[key] = 0
    for key in dic_arr:
        condition = (target - key) != key
        if ((target - key) in dic_arr) and condition:
            return True
    return False
  • ๋ฌธ์ œ19_๋ฌธ์ž์—ด ํ•ด์‹ฑ์„ ์ด์šฉํ•œ ๊ฒ€์ƒ‰ ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ
'''
1. query_list์— ์žˆ๋Š” ์›์†Œ๊ฐ€ string_list์— ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค
2. ์žˆ์œผ๋ฉด True, ์—†์œผ๋ฉด False ๊ฐ’์„ ์ •๋‹ต ๋ฆฌ์ŠคํŠธ์— ๋„ฃ๋Š”๋‹ค
'''
def solution(string_list, query_list):
    answer = []
    string_dict = {}
    for string in string_list:
        string_dict[string] = 1
    for query in query_list:
        if query in string_dict:
            answer.append(True)
        else:
            answer.append(False)
    return answer

08-5. ํ•ฉ๊ฒฉ์ž๊ฐ€ ๋˜๋Š” ๋ชจ์˜ ํ…Œ์ŠคํŠธ

0๊ฐœ์˜ ๋Œ“๊ธ€