반응형
https://www.acmicpc.net/problem/2711
문제
고창영은 맨날 오타를 낸다. 창영이가 오타를 낸 문장과 오타를 낸 위치가 주어졌을 때, 오타를 지운 문자열을 출력하는 프로그램을 작성하시오.
창영이는 오타를 반드시 1개만 낸다.
입력
첫째 줄에 테스트 케이스의 개수 T(1 <=T <=1,000)가 주어진다. 각 테스트 케이스는 한 줄로 구성되어 있다. 첫 숫자는 창영이가 오타를 낸 위치이고, 두 번째 문자열은 창영이가 친 문자열이다. 문자열의 가장 첫 문자는 1번째 문자이고, 문자열의 길이는 80을 넘지 않고, 대문자로만 이루어져 있다. 오타를 낸 위치는 문자열 길이보다 작거나 같다.
출력
각 테스트 케이스에 대해 오타를 지운 문자열을 출력한다.
예제 입력 1 복사
4
4 MISSPELL
1 PROGRAMMING
7 CONTEST
3 BALLOON
예제 출력 1 복사
MISPELL
ROGRAMMING
CONTES
BALOON
풀이
오타를 낸 위치 = position
ex) position = 4
배열은 0부터 시작하기 때문에 위치가 4인것을 제거할 때는 i=position-1을 해야 한다.
그럼 배열 3에 있는 L이 없어진다.
코드
#include <iostream>
#include <string>
using namespace std;
int main() {
int test;
cin>>test;
for(int i=0; i<test; i++){
int position;
string str;
cin>>position>>str;
for(int i=0; i<str.length(); i++){
if(i!=position-1){ // i와 position이 같지 않을때만 출력
cout<<str[i];
}
}
cout<<"\n";
}
return 0;
}
|
cs |
즉, i=position이 같을 때는 출력하지 않는다. (오타를 지운다는 의미와 같은 뜻)
반응형