백준 13단계 (집합과 맵) - 2번

LEE'S·2023년 1월 25일
0

백준

목록 보기
12/27

2번 (14425번)

✨ 풀이

집합 set()를 활용하여 풀이한다

import sys

n,m = map(int, sys.stdin.readline().split())
cnt = 0

s = set()

for _ in range(n) :
    s.add(sys.stdin.readline())

for _ in range(m) :
    mm = sys.stdin.readline()
    if mm in s : cnt += 1

print(cnt)

🔥 set 정리

💕 set 특징

  1. 중복을 허용하지 않는다
  2. 순서가 없다

1. 값 하나 추가하기 : add()

s.add(4)

2. 값 여러개 추가하기 : update()

s.update([1,3,4])

3.특정 값 제거하기 : remove()

s.remove(4)

✨ 다른 풀이

파이썬 딕셔너리는 해시값을 사용하기 때문에 O(1) 라고 한다 !!!!

import sys
N, M = map(int, input().split())
arr = dict()
cnt = 0
for _ in range(N):
    s = sys.stdin.readline()
    arr[s] = True
for _ in range(M):
    inp = sys.stdin.readline()
    if inp in arr.keys():
        cnt+=1

print(cnt)

🔥 dict 정리

1. 쌍 추가하기

a[2] = 'b'

2. 삭제하기 : del

del a[2] = 'b'

3. key 리스트 : .keys()

a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
print(a.keys()) # dict_keys(['name', 'phone', 'birth'])

진짜 리스트 처럼 append 와 같은 함수는 사용 못함

a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
for i in a.keys() :
  print(i) 
  print(a[i])
  
#name
#pey
#phone
#010-9999-1234
#birth
#1118

리스트로 변화하려면 list() 이용 !!

4. key, value 쌍 얻기 : .items()

a.items() 
# dict_items([('name', 'pey'), ('phone', '010-9999-1234'), ('birth', '1118')])
profile
기록 블로그

0개의 댓글