Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- priority_queue
- 브루트포스
- 코딩스킬
- 모의SW역량테스트
- find
- 백준
- 완전탐색
- BFS
- swea
- 문자열
- STL
- 삼성SW역량테스트
- 삼성SW테스트
- KAKAO
- dfs
- 레벨2
- 시뮬레이션
- 레벨3
- 2018
- substr
- Map
- C++
- dp
- 삼성
- Set
- 프로그래머스
- 이런게4문제
- 백트래킹
- 코딩테스트
- Sort
Archives
- Today
- Total
-
[C++] 공백 무시하고 문자열 뽑아내기 본문
C++로 코딩 테스트를 준비하다보면 문자열에 대한 공부를 하게 된다.
이전에 compare, substr, replace, swap, find 함수에 대해 다룬 글 (https://cpp-dev.tistory.com/56?category=852537) 이 있다면, 오늘은 공백을 포함한 문자열이 주어졌을 때, 공백을 제외한 문자열들을 추리는 코드를 살펴보고자 한다.
심심치않게 이런 기능이 코딩테스트에서 활용되므로 여기에 정리해둔다.
예시를 위해 C++ STL <set>을 활용해봤다.
먼저 <sstream>을 추가하고 stringstream에 분석하고자 하는 문자열을 22줄과 같이 넣는다.
그리고 문자열 변수에 while을 돌며 엔터를 만날때까지 공백을 제외한 문자열을 차례로 넣어주면 된다.
해당 부분은 22~28줄이다.
29~35줄은 string을 저장하는 집합에 대해 요소 접근을 예시로 들기 위해 넣어뒀다. 요소 접근은 *iter로 할 수 있다. 만약 s1와 같이 pair형태로 존재한다면 iter->first나 iter->second로 접근할 수 있다. iterator가 포인터 형이라 '->'가 사용되는 것이고, 벡터나 큐와 같은 자료구조로는 '.'로 first나 second에 접근할 수 있다.
오늘 본 어느 기업의 코딩테스트에서 유용하게 사용되었다. 면접 가자아
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#include <iostream>
#include <set>
#include <sstream>
#include <string>
using namespace std;
int main(){
set<pair<string, string> > s1;
set<string> s2;
string allconcat;
for (set<pair<string, string> >::iterator iter = s1.begin(); iter != s1.end(); iter++){
allconcat += iter->first;
allconcat += " ";
allconcat += iter->second;
allconcat += " ";
}
stringstream ss(allconcat);
string emp;
cout << "1. 공백 무시하고 문자열 뽑아내기 (stringstream)\n";
while (ss >> emp){
cout << emp << '\n';
}
cout << "2. 요소가 하나인 문자열 집합 출력하기 (*iter) \n";
for (set<string>::iterator iter = s2.begin(); iter != s2.end(); iter++){
emp = *iter;
cout << emp << '\n'; // 또는 cout << *iter << '\n';
}
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
'7. 코딩 스킬' 카테고리의 다른 글
[C++ 코딩스킬] map, set 컨테이너 (0) | 2020.02.06 |
---|---|
[코딩 스킬] 유용한 팁 사이트 (0) | 2020.02.04 |
[코딩 스킬] 내 입맛에 맞게 구조체 벡터 정렬하기 + 우선순위 큐 (0) | 2020.02.04 |
[C++] 문자열함수 정리 (compare, substr, find, replace, swap) (0) | 2020.01.21 |
[코딩스킬] C++ STL - 벡터, 큐, 뎈 (0) | 2020.01.14 |
Comments