본문 바로가기

코딩/백준 (단계별)

백준 10816번 파이썬 언패킹

반응형

백준 10816 - 숫자 카드 2

문제

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

 

10816번: 숫자 카드 2

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

www.acmicpc.net

10816번

답안 코드 :

N = int(input())
N_L = [*map(int, input().split())]
M = int(input())
M_L = [*map(int, input().split())]


count = {}      # 빈 딕셔너리인 count를 초기화
for num in N_L:
    if num in count:
        count[num] += 1 # 이미 딕셔너리에 있는 숫자라면 해당 숫자의 등장 횟수를 1 증가
    else:
        count[num] = 1  # 그렇지 않다면 해당 숫자를 딕셔너리에 추가하고 등장 횟수를 1

for target in M_L:
    result = count.get(target)  # target에 해당하는 값(등장 횟수)을 가져오기
    if result == None:
        print(0, end=" ")
    else:
        print(result, end=" ")

 

 

백준 / 문제 / 단계별로 풀어보기 / 14단계 집합과 맵

 

생각 :

# N = int(input())
# N_L = [*map(int, input().split())]
# M = int(input())
# M_L = [*map(int, input().split())]

# 여기서 *는 map 함수의 결과를 리스트로 언패킹하는 역할
# map 함수의 결과를 리스트로 변환하는데, *가 이 역할을 한다.

# 예를 들어, 사용자가 "1 2 3"을 입력했다면, 
# input().split()은 ['1', '2', '3']을 반환하고, 
# map(int, input().split())은 (1, 2, 3)을 반환합니다. 
# 마지막으로, [*map(int, input().split())]은 [1, 2, 3]으로 변환됩니다.


반응형

'코딩 > 백준 (단계별)' 카테고리의 다른 글

백준 1746 파이썬 intersection 메서드  (27) 2024.04.19
백준 1620 파이썬 포켓몬  (1) 2024.04.18
백준 7785 파이썬 items() 함수 lambda  (2) 2024.04.16
백준 14425 파이썬  (1) 2024.04.15
백준 10815 파이썬  (3) 2024.04.14