[C_C++]코딩테스트 연습/[백준] 일반 문제

[백준] 11721 열 개씩 끊어 출력하기 - C++ 입출력

코딩굼벵이 2022. 1. 22. 20:54
728x90

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

 

11721번: 열 개씩 끊어 출력하기

첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다.

www.acmicpc.net

 

 

문제

알파벳 소문자와 대문자로만 이루어진 길이가 N인 단어가 주어진다.

한 줄에 10글자씩 끊어서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다.

출력

입력으로 주어진 단어를 열 개씩 끊어서 한 줄에 하나씩 출력한다. 단어의 길이가 10의 배수가 아닌 경우에는 마지막 줄에는 10개 미만의 글자만 출력할 수도 있다.

예제 입력 1 복사

BaekjoonOnlineJudge

예제 출력 1 복사

BaekjoonOn
lineJudge

예제 입력 2 복사

OneTwoThreeFourFiveSixSevenEightNineTen

예제 출력 2 복사

OneTwoThre
eFourFiveS
ixSevenEig
htNineTen

 


 

10개마다 한줄씩 출력하도록 해서 제출했다.

다른 사람 풀이를 보니 코드 길이와 메모리상 그냥 10번째마다 줄바꿈 '\n'을 출력하는 게 더 효율적일 것 같다.

 

 

#include <iostream>
#include <string>

using namespace std;

int main() {
	string str;
	int num;

	cin >> str;
	num = str.length() / 10;
	for (int i = 0; i <= num; i++) {
		if(i != num)
			cout << str.substr(i*10, 10) << endl;
		else
			cout << str.substr(i*10, num + str.length() % 10) << endl;
	}

	return 0;
}