[C++] ALGOSPOT : URI


Image 6

Image 7

이 문제는 HEX -> DEC -> CHR 방식으로 변환을 해주어 풀 수 있다.

먼저, 주어진 문자열에 있는 Encoded String을 모두 추출하여 vector에 추가 해 두고

vector 안에 있는 값들을 변환하여 치환하는 방식으로 문제를 풀면 된다.

 

간단한 문제지만, 함정 하나 때문에 정답을 얻는데 좀 오래 걸렸다.

C++에는 일치하는 모든 문자열을 치환하는 함수가 없어서 직접 작성하였는데

이 부분이 오류였다. 모든 문자열이 아니라 한번만 치환해야 했던것 !

 

예를들어 abc%2525%2525abc 를 넣어주면

abc%25%25abc 이렇게 출력해야하는데

%25, %25 두개를 vector에 넣어두고 루프를 실행하면

 

첫번째 루프:  abc%25%25abc
두번째 루프: abc%%abc 이런식으로 되서 오답처리 되었던 것.

 

알고리즘 문제 풀땐 질문을 잘 이해하는것이 매우 중요한것 같다.

 

날 함정에 빠뜨렸던 replace 함수는 주석처리되어있다.