[백준 BOJ] 7120번 String (C++/cpp)

2022. 8. 16. 14:06PS (Program Solving)/BOJ (백준)

문제 설명

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

 

7120번: String

It sometimes happens that a button on the computer keyboard sticks and then in the printed text there are more than one identical letters. For example, the word "piano" can change into "ppppppiaanooooo". Your task is to write a program that corrects these

www.acmicpc.net

백준 BOJ 7120번 String 문제 사진

 

접근 방법 - 문자열을 응용한 기본 문제

백준의 7120번 문제는 문자열의 기본적인 성질을 이용하여 해결해야 하는 문제이다.

해당 문제는, 연속되어 나오는 같은 문자를 제외하여 입력값을 출력해야 하는 문제이다.

필자의 경우엔 문자열에 대한 각 문자를 탐색하면서 이전 값과 같은지를 비교해가면서 출력을 수행하도록 하였다.

cpp에선 String형에 대하여 배열 접근이 가능하므로 이 점을 참고하여 문제를 해결해보길 바란다.

해당 문제를 해결하는 데에 혹여나 어려움이 있다면 아래 필자의 코드와 설명을 참고해보길 바란다.

필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 문자열(a)을 입력받는다.

 

2) a의 길이만큼 반복문을 수행하여 아래의 연산을 취한다.

- 만약 현재 문자와 이전에 나타난 문자가 동일하다면 다음 순서의 반복문을 수행한다.

- 만약 현재 문자와 이전에 나타난 문자가 동일하지 않다면 해당 문자를 출력한 뒤 다음 순서의 반복문을 수행한다.

 

3) 줄바꿈을 출력하면서 실행 종료한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#include <string>
#define endl '\n'
using namespace std;

//백준 7120번 코드
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);	cout.tie(NULL);

	string a;
	cin >> a;
	for (int i = 0; i < a.length(); i++) {
		if (i != 0 && a[i - 1] == a[i]) { continue; }
		cout << a[i];
	}
	cout << endl;
}

 

제출 결과

백준 BOJ 7120번 String 문제 C++ 제출 결과

(2022.07.18 백준 7120번 문제 제출 결과)

반응형