[백준] 구현 11721번: 열 개씩 끊어 출력하기

C.K. ·2022년 6월 1일
0

baekjoon

목록 보기
7/67

문제

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

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

입력

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

출력

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

Approach

보기엔 간단해보이지만 테스트케이스 여럿 안해보면 틀리기 쉬운 구현 + 문자열 문제

  • 이중 for loop 사용
  1. 문자열 입력 받기
  2. outer loop 0부터 문자열의 길이만큼 돌리기
  3. inner loop 문자열 index i부터 10개씩 출력 (다음 outer loop 들어갈 때 i + 10)

Source Code

#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;
}

아직도 반례가 왜 생겼었는지 모르겠다... 보기에 쉬워보여서 코드 막 썼는데 자꾸 틀렸다고 떠서 너무 열받았다...

profile
1일 1알고리즘

0개의 댓글