백준 14425번 문자열 집합(python)

마뇽미뇽·2025년 3월 7일
0

알고리즘 문제풀이

목록 보기
123/165

1. 문제


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

2. 풀이

기존 숫자 카드 풀이 방식과 상당히 유사하다.

3. 코드

이분 탐색 방식

n,m = map(int,input().split())

arr1 = []
for i in range(n):
    arr1.append(input())

arr2 = []
for i in range(m):
    arr2.append(input())

arr1.sort()
def binary_search(arr, target):
    start = 0
    end = len(arr) - 1
    while start <= end:
        mid = (start + end) // 2
        if arr[mid] == target:
            return True
        elif arr[mid] > target:
            end = mid - 1
        else:
            start = mid + 1
    return False

count = 0
for i in arr2:
    if binary_search(arr1, i):
        count += 1

print(count)

set을 사용한 방식

n,m = map(int, input().split())

arr_1 = []
for i in range(n):
    arr_1.append(input())
sorted(set(arr_1))

arr_2 = []
for i in range(m):
    arr_2.append(input())

cnt = 0
for str in arr_2:
    if str in arr_1:
        cnt += 1

print(cnt)


위에가 set을 사용한 방식 밑에가 이분탐색을 사용한 방식이다.

profile
Que sera, sera

0개의 댓글