개미의 개열시미 프로그래밍

[알고리즘] 백준10816 숫자카드2 - 파이썬 본문

알고리즘/이분탐색

[알고리즘] 백준10816 숫자카드2 - 파이썬

YunHyeok 2021. 8. 20. 22:05
728x90
반응형

백준 단계별 풀어보기 '이진 탐색' 두 번째 문제를 풀어보았고 전에 풀었던 수 찾기와 매우 비슷한 문제라 금방 풀 수 있었다.

 

https://www.acmicpc.net/problem/10816

 

10816번: 숫자 카드 2

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

 

 

[풀이코드]

from bisect import bisect_left, bisect_right
from sys import stdin

n = int(input())
n_list = list(map(int, stdin.readline().split()))
n_list.sort()

m = int(input())
m_list = list(map(int, stdin.readline().split()))


c_num = []
for i in m_list:
    count = bisect_right(n_list, i) - bisect_left(n_list, i)
    c_num.append(count)

print(*c_num)

- 역시나 bisect을 활용해서 풀었다. 수 찾기 문제는 수가 존재만 하면 1을 출력하는 것이었다면 이번 문제에서는 찾은 수의 갯 수를 출력해야 해서 오히려 빨리 풀 수 있었던 문제였다.

728x90
반응형
Comments