본문 바로가기
[C++]

코테 보고 느낀점

by Hevton 2022. 9. 24.
반응형

 

플젝도 플젝이지만, 정말 하루에 꼭 한문제 까진 아니더라도

감각이 무뎌지지 않을 정도로 꾸준히 문제를 푸는 것이 중요할 것 같다.

 

꼭 코딩테스트를 위한 준비라기보다, 풀이를 통해 사고력을 향상하는데 도움이 된다고 생각한다.

 

 

난 JAVA를 좋아했고, 코딩테스트에는 적절하지 못하다고 생각하여 C로 바꿨었으며

그 이후에는 또 C++로 옮기게 되었다.

 

 

근데 여전히 아직도 C++ 문자열 split이나 파싱조차 제대로 할 줄 모른다는게 현실이다.

문자열 포매팅, 문자열 합치기, 문자열과 정수 합치기, 문자열 split 등 모두 할 줄 몰라서 애를 먹는다.

자바는 ""+int 하면 string으로 되는데,

 

이번에 1차원 벡터의 초기화를 처음 알게 되었고

vector<int> v(9, 0); // size가 9인 벡터 0으로 초기화

 

2차원 벡터의 초기화도 처음 알게 되었다.

vector<vector<int>> v(9, vector<int>(9, 0)) v;

 

이런 기본적인 것들을 이제야 아는 것이 한심스러운게 맞다.

 

그리고 stringstream도 처음 알게 되었다. 그걸 이용해서 아래와 같이 split 기능을 구현할 수도 있다.

vector<string> split(string input, char delimiter) {
    vector<string> result;
    stringstream ss(input);
    string tmp;
 
    while (getline(ss, tmp, delimiter)) result.push_back(tmp);
 
    return result;
}

여기서 tmp를 int로 하고 싶으면 stio()나 아래와 같이 해주면 된다.

int t_v;
stringstream x(tmp);
x >> t_v;

 

 

 

 

 

또한 자바에서는 string과 int를 합쳐 string을 만들 때, 그냥 str + int 해주면 된다.

근데 이게 C++에서는 안된다.

 

string str = "price is ";
int value = 100;

str += to_string(value);

이렇게 해주어야 한다.

 

 

 

그리고 sprintf 같은 포매팅을 C++에서 string으로 어떻게 하나 궁금한데,, 그건 찾아봐도 잘 찾아지지가 않는다.

%02d 하면 01 02 03 이렇게 string으로 담고 싶은데...;

아시는분 계시면 답변 부탁드립니당.

 

 

https://codecollector.tistory.com/999

https://leeeegun.tistory.com/3

https://baebalja.tistory.com/159

반응형

'[C++]' 카테고리의 다른 글

C++ 레퍼런스 (&) 분석  (0) 2023.08.30
배열과 벡터의 복사  (0) 2022.10.08
[C++] XCODE 특정 파일 제외하고 빌드/컴파일  (0) 2021.07.05
[C++] #pragma once  (0) 2021.07.05
[C++] constant 함수  (0) 2021.07.05