Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 최적제어
- HJB방정식
- MIT opencourse
- 정렬
- 논문리뷰
- 자료구조
- 텔레스코픽로봇
- mit
- std::sort
- 실버 5
- 백준
- 큐
- 수학
- 구현
- lqr
- 다리로봇
- 6.042j
- 집합과 맵
- 실버 4
- 대수경
- 로보틱스
- LeggedRobot
- baekjoon problem solving
- 로봇공학
- mathematics for computer science
- 전국 대학생 수학 경시대회
- baekjoon
- BOJ
- 문자열
- C++
Archives
- Today
- Total
서두르지 말고 쉬지 말자
백준 1620번 나는야 포켓몬 마스터 이다솜(C++) 본문
solved.ac 문제 난이도 : 실버 4
문제 유형: 자료구조, 해시를 이용한 집합과 맵
문제 해결 전략 : 양방향 map을 이용해서 구현했고 시간 단축을 위해 코드를 추가했다. stoi와 isdigit를 이용했다.
문제 해결 소감 : map 자료구조가 뭔지 알고 STL(Standard Templete Library)로 구현해 보았다. 처음 이 자료형을 접했다. 지금은 STL을 사용할 수 있는 걸로 만족하지만, 라이브러리가 Red-Black Tree로 이루어져 있다는데 나중에 이게 뭔지 한번 알아봐야 겠다. stoi와 isdigit를 알았다 이런 편리한 함수는 좀 알아두자.
#include <iostream> //포켓몬 마스터 이다솜
#include <map>
#include <string>
int n = 0, m = 0;
std::string str;
std::map<int, std::string> num2name;
std::map<std::string, int> name2num; //양방향으로 탐색가능하게 하기 위해 키 값의 타입 반전시켜서 총 2개 선언언
int main()
{
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr); //시간 단축용
std::cin >> n >> m;
for (int i = 0; i < n; i++)
{
std::cin >> str;
num2name[i + 1] = str;
name2num[str] = i + 1;
}
std::string input = "";
for (int i = 0; i < m; i++)
{
std::cin >> input;
if (std::isdigit(input[0]))//숫자 문자 섞여 있지 않아서 [0]인덱스만 검사해도 됨, isdigit은 숫자면 참 아니면 거짓인 함수
{ // 숫자다
std::cout << num2name[std::stoi(input)] << '\n';//stoi는 string to int std::string을 정수타입으로 바꿔줌줌
}
else
{ // 문자열이다
std::cout << name2num[input] << '\n';
}
}
return 0;
}반응형
'코딩 공부 > Baekjoon Problem Solving' 카테고리의 다른 글
| 백준 1676번 팩토리얼 0의 개수(C++) (0) | 2025.04.26 |
|---|---|
| 백준 10845번 큐(C++) (0) | 2025.04.25 |
| 백준 11723번 집합(C++) (0) | 2025.04.15 |
| 백준 2798번 블랙잭(C++) (0) | 2025.03.10 |
| 백준 11050번 이항계수 1 (C++) (0) | 2025.03.09 |
