728x90

문제

방금 막 프로그래밍을 배우기 시작한 찬우는 acmicpc.net에 있는 회원들이 모두 신같이 보였다. 그래서 찬우는 모든 회원의 닉네임 앞에 ‘갓’을 붙이려고 한다.

찬우가 ‘koosaga’라는 닉네임을 가진 회원을 갓으로 바꿔 부른다면 ‘godsaga’가 된다. 또, 찬우가 ‘acka’라는 닉네임을 가진 회원을 갓으로 바꿔 부른다면 ‘godka’가 될 것이다. 찬우는 닉네임을 갓으로 바꾸는 알고리즘을 생각하다가, 아래와 같이 2단계 방법을 사용하면 될 것으로 생각했다.

  • 닉네임을 음절 단위로 쪼갠다.
  • 가장 첫 음절을 ‘god’으로 바꾼 후 쪼갠 음절을 합친다.

찬우는 수작업으로 N명의 닉네임을 모두 음절 단위로 쪼갰다. 찬우를 도와 이 닉네임들에 갓을 붙이는 프로그램을 작성하자.

입력

첫 번째 줄에는 닉네임의 수 N(1 ≤ N ≤ 100)이 주어진다. 두 번째 줄부터 N개의 줄에는 음절 단위로 쪼갠 닉네임이 주어진다. 각 줄은 알파벳 소문자와 공백만으로 이루어지며, 쪼갠 닉네임의 총 길이(공백 포함)는 100을 넘지 않는다. 쪼갠 닉네임에는 1개 이상의 공백이 존재한다.

출력

각 줄에 하나씩 갓을 붙인 닉네임을 출력한다.

예제 입력 1 복사

5 baek joon koo sa ga ac ka yu ka ri ko ke sa ki yo

예제 출력 1 복사

godjoon godsaga godka godkariko godsakiyo


한 줄로 들어오는 입력에서 첫 어절만 god으로 교체한 후 나머지는 공백을 제거해서 출력하면 되는 문제다.

문자열 문제를 풀다보면 getline을 쓰는 문제가 꽤 나오는 것 같다.

 

 

코드 원본 : https://github.com/chosh95/STUDY/blob/master/BaekJoon/2020/%EB%8B%89%EB%84%A4%EC%9E%84%EC%97%90%20%EA%B0%93%20%EB%B6%99%EC%9D%B4%EA%B8%B0%20(13163%EB%B2%88).cpp

 

chosh95/STUDY

프로그래밍 문제 및 알고리즘 정리. Contribute to chosh95/STUDY development by creating an account on GitHub.

github.com

 

C++ 코드

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int N;

int main()
{
	cin >> N;
	cin.ignore();

	while (N--) {
		string str;
		getline(cin, str);
		for (int cnt = 0, i = 0; i < str.size(); i++) {
			if (cnt == 0) {
				if (str[i] == ' ') {
					cout << "god";
					cnt++;
				}
			}
			else {
				if (str[i] != ' ')
					cout << str[i];
			}
		}
		cout << "\n";
	}
}

 

728x90

+ Recent posts