본문 바로가기

카테고리 없음

[BaeKJoon/C++] 백준2711 c++ 오타맨 고창영

반응형

https://www.acmicpc.net/problem/2711

 

2711번: 오타맨 고창영

첫째 줄에 테스트 케이스의 개수 T(1<=T<=1,000)가 주어진다. 각 테스트 케이스는 한 줄로 구성되어 있다. 첫 숫자는 창영이가 오타를 낸 위치이고, 두 번째 문자열은 창영이가 친 문자열이다. 문자

www.acmicpc.net

 

문제

고창영은 맨날 오타를 낸다. 창영이가 오타를 낸 문장과 오타를 낸 위치가 주어졌을 때, 오타를 지운 문자열을 출력하는 프로그램을 작성하시오.

창영이는 오타를 반드시 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이 같을 때는 출력하지 않는다. (오타를 지운다는 의미와 같은 뜻)

반응형