본문 바로가기

컴퓨터/알고스팟 알고리즘

알고스팟 알고리즘: MISPELL [C++]

문제 출처: algospot.com/judge/problem/read/MISPELL

 

algospot.com :: MISPELL

Mispelling 문제 정보 문제 Misspelling is an art form that students seem to excel at. Write a program that removes the nth character from an input string. 입력 The first line of input contains a single integer N, (1 ≤ N ≤ 1000) which is the numb

algospot.com

1. 코드

#include <iostream>
#include <string>

using namespace std;

int main(void)
{
	int t;
	cin >> t;

	for(int j = 0; j < t; j++)
	{
		int n;
		string arr;
		cin >> n >> arr;
		cout << j + 1 << " ";
		for (int i = 0; i < arr.length(); i++)
		{
			if (n == i + 1) continue;
			cout << arr[i];
		}
		cout << endl;
	}
}

(실행)

2. 풀이

이 문제는 매우 간단하다. 수와 문자를 입력하는데 입력한 수가 해당 자리의 문자가 출력이 안되면 된다.

int t;
cin >> t;

for(int j = 0; j < t; j++)

테스트 케이스의 횟수를 입력하고 그 수만큼 반복한다.

int n;
string arr;
cin >> n >> arr;
cout << j + 1 << " ";

그리고 수와 문자열을 입력한 뒤 먼저 j에 1을 더한 값을 출력한다.

for (int i = 0; i < arr.length(); i++)
{
	if (n == i + 1) continue;
	cout << arr[i];
}
cout << endl;

그리고 문장열의 길이만큼 반복해주는데 입력한 값과 반복문 카운트 값인 i에 1을 더한 값과 동일한 결과가 나오면 continue를 해주고 그렇지않다면 입력한 문자열의 문자를 출력한다. 마지막으로 반복문이 끝나면 줄바꿈을 해주면 된다.