알파벳 소문자와 대문자로만 이루어진 길이가 N인 단어가 주어진다.
한 줄에 10글자씩 끊어서 출력하는 프로그램을 작성하시오.
첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다.
입력으로 주어진 단어를 열 개씩 끊어서 한 줄에 하나씩 출력한다. 단어의 길이가 10의 배수가 아닌 경우에는 마지막 줄에는 10개 미만의 글자만 출력할 수도 있다.
보기엔 간단해보이지만 테스트케이스 여럿 안해보면 틀리기 쉬운 구현 + 문자열 문제
- 이중 for loop 사용
- 문자열 입력 받기
- outer loop 0부터 문자열의 길이만큼 돌리기
- inner loop 문자열 index i부터 10개씩 출력 (다음 outer loop 들어갈 때 i + 10)
#include <bits/stdc++.h>
#include <string>
using namespace std;
int main()
{
string input; // 문자열 입력 받기
cin >> input;
int n = input.length(); // 문자열 길이 n
// 문자열의 길이가 10보다 작거나 같은 경우, 그냥 출력
if (n <= 10)
{
cout << input << endl;
}
else
{
for (int i = 0; i < n; i += 10) // i는 10씩 늘어남
{
for (int j = i; j < i + 10; j++)
{
if (j == n) // 더 이상 출력할 게 없으면 break
break;
cout << input[j]; // 한 글자씩 출력
}
// 열개 출력 후 다음 줄
cout << '\n';
}
}
return 0;
}
아직도 반례가 왜 생겼었는지 모르겠다... 보기에 쉬워보여서 코드 막 썼는데 자꾸 틀렸다고 떠서 너무 열받았다...