알고리즘 코드카타
1. WHAT
-문자열 자르기
s.substr(시작위치, 문자열 길이)
2. HOW
햄버거 만들기
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> ingredient) {
int answer = 0;
string stk="";
for(int n:ingredient){
stk+=n+'0';
if(stk.find("1231",stk.size()-4,4)!=string::npos){
answer+=1;
stk=stk.substr(0,stk.size()-4);
}
}
return answer;
}
3. TROUBLE
- 프로그래머스 출력 크기 초과 문제
👉 표준입출력이 너무 많은 경우 발생하는 에러
디버깅용으로 cout을 사용해 매 반복마다 체크했는데 이게 원인이었다.
출력을 제거하니 문제가 해결되었다.
- 불필요한 연산 반복
if(stk.find("1231",0,4)!=string::npos){}
처음에 find할 때 시작 위치를 0으로 했는데
계속 0부터 탐색을 하니 불필요한 연산이 필요했고 오류도 있었다.
문제의 조건이 계속 쌓일 때마다 가장 위층이 햄버거 순서이면 되는 것이기에 뒤에서 4번째 부터 탐색을 하면 되었다.
4. 참고
https://8156217.tistory.com/20#google_vignette
[c++] 문자열 자르기 / 쪼개기 (Substr , Sstream , Strtok) 총정리 및 예제
1) s.substr(시작 위치 , 문자열의 길이) string s = "0123456789"; string subs1 = s.substr(2,5); // subs1 = "23456" string s = "0123456789"; string subs1 = s.substr(5); // subs1 = "56789" string s = "0123456789"; string subs1 = s.substr(); // subs1
8156217.tistory.com
'내배캠Unreal_TIL > C++' 카테고리의 다른 글
| [TIL] 2026-01-29 | 약수 구하는 알고리즘 (1) | 2026.01.29 |
|---|---|
| [TIL] 2026-01-23 | <string> find, <algorithm> find (0) | 2026.01.23 |
| [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 |