![[백준 / BOJ] 1620번 나는야 포켓몬 마스터 이다솜 (C++, Python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcDoju%2FbtrJqKMYntG%2FOWvIqzYABiudPZ2xMh7xkK%2Fimg.png)
[백준 / BOJ] 1620번 나는야 포켓몬 마스터 이다솜 (C++, Python)◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 6. 1. 19:40
Table of Contents
반응형
링크 : https://www.acmicpc.net/problem/1620
1620번: 나는야 포켓몬 마스터 이다솜
첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면
www.acmicpc.net
문제
문제 풀이
문제가 굉장히 길다.
C++ 상세 풀이
더보기
map을 활용해 입력받은 순서대로 해당 인덱스와 문자를 넣은 후, 숫자를 받았을 때 문자열을 출력해주기 위해 따로 vector을 선언해 주었다.
후에 입력받았을 때 가장 앞자리가 숫자면 vector의 인덱스 문자열을 출력해주고, 문자를 입력받았다면 숫자를 출력해주면 된다.
for (int i = 0; i < N; ++i) {
std::string str;
std::cin >> str;
mp.insert(make_pair(str, i + 1));
v[i + 1] = str;
}
for (int i = 0; i < M; ++i) {
std::string str;
std::cin >> str;
if (isdigit(str[0])) {
int key = stoi(str);
std::cout << v[key] << "\n";
}
else
std::cout << mp.find(str)->second << "\n";
}
Python 상세 풀이
더보기
dict 자료형을 활용하면 된다. 아주 쉽게 풀린다.
for i in range(1, N + 1):
word = input().strip()
dict[i] = word
dict[word] = i
for i in range(M):
word = input().strip()
if word.isdigit():
print(dict[int(word)])
else:
print(dict[word])
C++ 코드 전문
Python 코드 전문
소감
반응형
'◎ 자료구조와 알고리즘 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 / BOJ] 1764번 듣보잡 (C++, Python) (0) | 2022.06.01 |
---|---|
[백준 / BOJ] 10816번 숫자 카드 2 (C++, Python) (0) | 2022.06.01 |
[백준 / BOJ] 14425번 문자열 집합 (C++, Python) (0) | 2022.06.01 |
[백준 / BOJ] 10815번 숫자 카드 (C++, Python) (0) | 2022.06.01 |
[백준 / BOJ] 18870번 좌표 압축 (C++, Python) (0) | 2022.06.01 |
@Reo :: 코드 아카이브
자기계발 블로그