코딩 테스트/Baekjoon

S4 10816번: 숫자 카드 2

  • -
728x90
반응형

문제 보기 :  10816번: 숫자 카드 2


문제

  • 정답률 : 38%

 


작성 코드

# 입력받은 전체 숫자의 개수 (사용되진 않음)
T = int(input())

# 전체 숫자 리스트 입력받기
ls = list(map(int, input().split()))

# 숫자의 등장 횟수를 저장할 딕셔너리 초기화
dicc = {}
for i in ls:
    # 숫자가 이미 딕셔너리에 있다면 등장 횟수 1 증가
    if i in dicc:
        dicc[i] += 1
    # 딕셔너리에 없다면 초기값으로 1 저장
    else:
        dicc[i] = 1

# 탐색할 숫자의 개수 (사용되진 않음)
n = int(input())

# 탐색할 숫자 리스트 입력받기
ls = list(map(int, input().split()))

# 탐색할 숫자가 딕셔너리에 있으면 등장 횟수 출력, 없으면 0 출력
for i in ls:
    if i in dicc:
        print(dicc[i], end=' ')
    else:
        print(0, end=' ')

풀이

입력 받은 리스트로 딕셔너리를 먼저 만든 다음, 새로 숫자 리스트를 받아서 한줄에 출력하는 방식으로 코드를 구성했다.

딕셔너리를 활용했기 때문에 숫자의 빈도를 효율적으로 계산할 수 있는 것이 장점이다. 

320x100
728x90

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

S1 11286. 절댓값 힙  (0) 2024.12.15
S4 10866. 덱  (0) 2024.12.15
S1 7562. 나이트의 이동  (0) 2024.12.09
S2 4963. 섬의 개수  (1) 2024.12.09
S2 11725. 트리의 부모 찾기  (0) 2024.12.09
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.