๐Ÿ‘ฉ๐Ÿป‍๐ŸŒพ

[๋ฐฑ์ค€/Python] 1920๋ฒˆ ์›ํ•˜๋Š” ์ •์ˆ˜ ์ฐพ๊ธฐ ๋ณธ๋ฌธ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€/Python] 1920๋ฒˆ ์›ํ•˜๋Š” ์ •์ˆ˜ ์ฐพ๊ธฐ

์ฅฌ์Šค์ด 2023. 3. 7. 17:10
728x90

1๏ธโƒฃ๋ฌธ์ œ ์„ค๋ช…

N๊ฐœ์˜ ์ •์ˆ˜ A[1], A[2], …, A[N]์ด ์ฃผ์–ด์ ธ ์žˆ์„ ๋•Œ, ์ด ์•ˆ์— X๋ผ๋Š” ์ •์ˆ˜๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

2๏ธโƒฃ์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” N๊ฐœ์˜ ์ •์ˆ˜ A[1], A[2], …, A[N]์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M(1 ≤ M ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” M๊ฐœ์˜ ์ˆ˜๋“ค์ด ์ฃผ์–ด์ง€๋Š”๋ฐ, ์ด ์ˆ˜๋“ค์ด A์•ˆ์— ์กด์žฌํ•˜๋Š”์ง€ ์•Œ์•„๋‚ด๋ฉด ๋œ๋‹ค. ๋ชจ๋“  ์ •์ˆ˜์˜ ๋ฒ”์œ„๋Š” -231 ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ  231๋ณด๋‹ค ์ž‘๋‹ค.

3๏ธโƒฃ์ถœ๋ ฅ

M๊ฐœ์˜ ์ค„์— ๋‹ต์„ ์ถœ๋ ฅํ•œ๋‹ค. ์กด์žฌํ•˜๋ฉด 1์„, ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.

 


๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป์ž‘์„ฑํ•œ ์ฝ”๋“œ

import sys

input = sys.stdin.readline

n = int(input())	# ์ž…๋ ฅ ๋ฐ›์„ ๊ฐœ์ˆ˜
A = list(map(int, input().split()))
m = int(input())	# ํƒ€๊ฒŸ ๊ฐœ์ˆ˜
targetList = list(map(int, input().split()))

A.sort()

for i in range(m):
    find = False
    target = targetList[i]
    s = 0
    e = len(A) - 1
    while s <= e:
        midI = (s + e) // 2
        midV = A[midI]
        if midV > target:
            e = midI - 1
        elif midV < target:
            s = midI + 1
        else:
            find = True
            break
    if find:
        print(1)
    else:
        print(0)

๐Ÿ’ก์ฝ”๋“œ ์„ค๋ช…

์ด ๋ฌธ์ œ๋Š” ์ด์ง„ํƒ์ƒ‰์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ฆฌ์ŠคํŠธ A๋ฅผ ์ •๋ ฌํ•ด์คฌ๋‹ค.

 

for๋ฌธ์„ ํ†ตํ•ด ์ด์ง„ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•˜๊ณ  ํƒ€๊ฒŸ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฆฌ์ŠคํŠธ A์— ์žˆ์„ ์‹œ, boolํ˜•์ธ find๋ฅผ True๋กœ ์ €์žฅํ•œ๋‹ค.

 

๋ณ€์ˆ˜ find๋ฅผ ํ†ตํ•ด ํƒ€๊ฒŸ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š”์ง€ ํŒ๋ณ„ํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ผ 1 ๋˜๋Š” 0์„ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

728x90
Comments