알고리즘 코드카타
<string> find
s.find( 찾을 문자열 , 시작 위치 , 찾을 문자열의 길이 )
👉 찾지 못하면 npos를 반환
npos 활용
string s = "Hello World";
int index = s.find("a");
if(index == string::npos){
cout << "Not Found."
}
else{
cout << index ;
}
// 출력 : Not found.
<algorithm> find
- vector에서의 사용
find( v.begin() , v.end() , 찾을값 )
👉 찾는 값을 가리키고 있는 iterator를 반환
👉 찾지 못하면 v.end() 반환
vector<int> v = {2 , 1 , 4 , 5 , 3};
vector<int> :: iterator it;
it = find( v.begin() , v.end() , 3 );
cout << *it << endl; // 출력 : 3
cout << it - v.begin() << endl; // 출력 : 4
*를 붙이면 it가 가리키는 값을 반환하고,
it - v.begin()을 해주면 가리키는 값의 index를 반환한다.
- array에서의 사용
find( arr , arr + arr_size , 찾을 값 )
👉 찾는 값을 가리키고 있는 포인터 반환
👉 찾지 못하면 arr + arr_size 반환
*을 붙이면 포인터가 가리키는 값을 반환하고,
p - arr를 하면 포인터가 가리키는 값의 index를 반환한다.
프로그래머스 - 숫자 문자열과 영단어
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때
일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
1478 → "one4seveneight"
234567 → "23four5six7"
10203 → "1zerotwozero3"
이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다.
s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
#include <string>
#include <vector>
#include <cctype>
using namespace std;
int solution(string s) {
int answer = 0;
vector<string>en={"zero","one","two","three","four","five","six","seven","eight","nine"};
for(int i=0;i<s.size();i++){
if(isdigit(s[i])){
answer*=10;
answer+=(s[i]-'0');
}
else{
for(int j=0;j<10;j++){
if(i==s.find(en[j],i)){
answer*=10;
answer+=j;
i+=en[j].size()-1;
break;
}
}
}
}
return answer;
}
string s를 for문으로 탐색을 한다.
문자가 숫자이면 해당 문자를 숫자로 변환해서 answer에 값을 넣는다.
아니라면 숫자 문자열 목록(en)을 for 돌려서 해당 위치에 find하는지 판별한다.
찾으면 en의 해당 인덱스를 answer값에 넣고 숫자 문자열 길이 만큼 i에 더헤야하는데
이때 for문에 i++ 연산이 있으므로 (길이 -1)을 더해준다.
참고
https://zzageuli.tistory.com/49
[TIL] 2026-01-20 | C++ int to char / char to int / int to string / string to int
알고리즘 코드카타 변수 타입 변경이 너무 헷갈려~~파이썬에서는 알잘딱깔센해줬던거같은데.. 하하 그래서 한 번 정리하고 넘어가야겠다. 1. int to charint before = 3;char after = before + '0';// 또는 char af
zzageuli.tistory.com
https://8156217.tistory.com/21#google_vignette
[c++] 문자열 찾기 ( <algorithm> find , <string> find) 총정리 및 예제
에서 제공하는 Find 함수가 있고, 에서 제공하는 Find 함수가 있는데 두 가지를 모두 정리해보았다. ① 의 find 함수 헤더파일 #include 사용법 s.find( 찾을 문자열 , 시작 위치 , 찾을 문자열의 길이 ) str
8156217.tistory.com
'내배캠Unreal_TIL > C++' 카테고리의 다른 글
| [TIL] 2026-02-02 | 프로그래머스 햄버거 만들기 (2) | 2026.02.02 |
|---|---|
| [TIL] 2026-01-29 | 약수 구하는 알고리즘 (1) | 2026.01.29 |
| [TIL] 2026-01-20 | C++ int to char / char to int / int to string / string to int (0) | 2026.01.20 |
| [TIL] 2026-01-19 | C++ Set 사용 (0) | 2026.01.19 |
| [TIL] 2026-01-15 | C++ 캐스트(cast) 연산자 (0) | 2026.01.15 |