문자열 처리 관련 문제. C++ 기본적인 지식만 있으면 쉽게 풀수있는 문제이다.
입력받은 문자열을 공백을 기준으로 자르고
주어진 숫자위치에 있는 문자를 지우면 된다.
문제를 풀고나서 생각되는게 substr 보단 erase 쓰는게 더 좋았을 것 같다.
C++를 아직 배우는 단계라 좀 헷갈리는 부분이 있었는데.
cin 으로 인풋을 한 다음에 getline 으로 또 인풋을 받으려니까 오류가 났었다.
getline() 하기 전에 꼭 cin.ignore()를 해줘야 제대로 입력을 받을 수 있다.
#include <iostream> #include <string> #include <vector> using namespace std; int main(){ int t; cin >> t; cin.ignore(); vector<string> v; for(int i=0; i<t; i++){ string input; getline(cin, input); int pos = input.find(" "); string number = input.substr(0, pos); input = input.substr(pos + 1, input.length() - pos); pos = stoi(number); string output; output += input.substr(0, pos-1); output += input.substr(pos, input.length()-pos); v.push_back(output); } for(int i=0; i<t; i++){ cout << i+1 << " " << v[i] << endl; } }