문자열이 낀 알고리즘 문제에 항상 취약한 것 같다.
문자열과 숫자가 번갈아 들어오는데, 처음에는 아스키코드로 구분을 하였다. 너무 비효율적이라고 생각하였지만, 이것이 내가 아는 방법이었기 때문이다. 구글에 찾아보았다. isdigit() 이라는 함수가 있었다.
#include <ctype.h> 선언해주자.
bool bCheck;
bCheck=isdigit('3'); True
bCheck=isdigit(49); True
bCheck=isdigit('t'); False
문제를 풀 때에 map 을 이용하는 것 까지는 맞았지만 map<int,string> 으로 했던 잘못이 있었다.
string을 key로 두면 훨 쉬워지는데 말이다.
string 이 들어오면
string poke;
if(digit(poke[0]){
}
else{
printf("%d", mm.find(poke)->second);
}
mm이 map 이다. 이렇게 하면되고,
따로 string 배열을 만들어서 수 값을 출력하면 될 것이다.
ios::ios::base:: ~~~~ false 추가해도 시간초과 되었는데 temp 부분을 scanf 로 바꾸니 풀렸다...
'공부 기록들' 카테고리의 다른 글
20.01.20 백엔드 공부(1) (0) | 2020.01.22 |
---|---|
19.12.05 (힙, c++ 절대값, mem 시리즈, boj11286, boj1655) (0) | 2019.12.05 |
19.11.25 (이분탐색에서 조건문은 항상!, boj1920 ,boj10816) (0) | 2019.11.25 |
19.11.22 (vector 2차 배열 선언, lower bound, upper bound) (0) | 2019.11.22 |
19.11.13 (priority queue, deque) (0) | 2019.11.13 |