본문 바로가기

PS/백준

[BOJ] 백준 10816 숫자 카드 2 (Swift)

반응형

문제

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

 

10816번: 숫자 카드 2

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

www.acmicpc.net

풀이

상근이가 가지고 있는 숫자 카드를 Dictionary 자료형으로 만들어주면 쉽게 풀이할 수 있습니다.

Dictionary의 생성자 중 Dictionary(keysAndValues: Sequence, uniquingKeysWith:(_, _) throws -> _)를 사용하여
중복된 키의 value를 합쳐주는 기능을 작성할 수 있습니다.

그 이후 숫자카드들을 하나씩 확인하면서, 만들어준 Dictionary에 key로 숫자카드가 존재하면 value(개수)를 출력해주고 key가 없다면 0을 출력해줍시다.

key가 없다면 default 값을 갖도록 작성할 수 있습니다.

소스코드

후기

Dictionary에도 많은 기능이 있는데 이러한 기능을 사용한다면, 코드를 간결하게 작성할 수 있다고 느꼈습니다.

Dictionary에 대한 이해가 있다면 쉽게 풀 수 있는 문제입니다.

반응형