Lumpy Space Princess - Adventure Time
코딩테스트/백준

백준[1920] - 수 찾기

yaebb_82 2023. 5. 9.

 

 

문제

 

1920번: 수 찾기

첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들

www.acmicpc.net

 

 

 

작성한 코드

import sys
input = sys.stdin.readline

N = int(input())
A = list(map(int, input().split()))
A.sort()

M = int(input())
X = list(map(int, input().split()))

for value in X:
    lt = 0
    rt = N-1
    isExit = False
    
    while lt<=rt:
        mid = (lt+rt)//2
        
        if value == A[mid]:
            print(1)
            isExit = True
            break
        elif value > A[mid]:
            lt = mid + 1
        else:
            rt = mid - 1

    if not isExit:
        print(0)

- 이분탐색 연습을 위한 문제이기 때문에, 이분탐색으로 풀어보았다.

- lt와 rt는 인덱스 번호로 잡았고, lt는 처음 인덱스인 0 / rt는 A의 끝 인덱스인 N-1로 초기값을 세팅해주었다.

- 존재하면 1, 존재하지 않으면 0을 출력해야했기 때문에 Boolean 타입의 변수인 isExit을 활용하여 print() 해주었다.

 

 

 

반응형

'코딩테스트 > 백준' 카테고리의 다른 글

백준[10816] - 숫자 카드 2  (0) 2023.05.09
백준[2178] - 미로탐색  (0) 2023.03.08
백준[1012] - 유기농 배추  (0) 2023.03.08
백준[2667] - 단지번호붙이기  (0) 2023.03.04
백준[1260] - DFS와 BFS  (0) 2023.03.04

댓글