문제
https://www.acmicpc.net/problem/1620
풀이
문제가 엄청 기네요...
먼저 문제를 살펴보면 n번의 포켓몬의 이름을 입력받고,
m번의 명령을 통해 명령이 숫자이면 포켓몬이름, 문자열이면 포켓몬의 번호를 출력해주는 문제입니다.
어떻게 포켓몬의 이름과 번호를 매칭시킬 수 있을까요?
Swift에서는 HashMap이라고도 불리는 Dictionary 자료형을 사용할 수 있습니다.
간단하게 설명하면 key와 value를 쌍으로 갖는 자료구조이고, key는 중복될 수 없습니다.
https://dev-mandos.tistory.com/88
이름을 key로 갖는 Dictionary, 번호를 key로 갖는 Dictionary 두 개를 사용하여 풀이할 수 있습니다.
n번의 포켓몬 이름을 입력받을 때, 이 두 Dictionary에 값을 넣어줍시다.
그 이후 m번의 명령을 통해 문자열이라면 이름을 key로 갖는 Dictionary의 value를 출력해주고,
숫자라면 번호를 key로 갖는 Dictionary의 value를 출력해주면 되겠죠?
그런데 여기서 명령이 문자열인지 숫자인지는 어떻게 알 수 있을까요?
저는 if-let 문법을 사용하여, 명령을 Int로 자료형 변환이 가능하다면 포켓몬 번호이고, 불가능하다면 포켓몬 이름이라고 구분을 해주었습니다.
소스코드
후기
Dictionary 자료형에 대해 알고있다면 쉽게 풀 수 있는 문제입니다.
또한 명령이 String인지 Int인지 알 수 있도록 if-let 문법을 사용하면 쉽게 판단할 수 있습니다.
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 1764 듣보잡 (Swift) (0) | 2023.03.14 |
---|---|
[BOJ] 백준 10816 숫자 카드 2 (Swift) (0) | 2023.03.14 |
[BOJ] 백준 11425 문자열 집합 (Swift) (0) | 2023.03.14 |
[BOJ] 백준 10815 숫자카드 (Swift) (0) | 2023.03.14 |
[BOJ] 백준 1436 영화감독 숌 (Swift) (0) | 2023.03.13 |