알고리즘 문제풀이/백준
[백.단.풀.3] 열 개씩 끊어 출력하기 (11721)
뻠스키
2019. 3. 6. 19:52
Step : <for문 사용해보기>
Title : " 열 개씩 끊어 출력하기 "
문제
알파벳 소문자와 대문자로만 이루어진 길이가 N인 단어가 주어진다.
한 줄에 10글자씩 끊어서 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다.
출력
입력으로 주어진 단어를 열 개씩 끊어서 한 줄에 하나씩 출력한다. 단어의 길이가 10의 배수가 아닌 경우에는 마지막 줄에는 10개 미만의 글자만 출력할 수도 있다.
예제 입력 1
BaekjoonOnlineJudge
예제 출력 1
BaekjoonOn lineJudge
예제 입력 2
OneTwoThreeFourFiveSixSevenEightNineTen
예제 출력 2
OneTwoThre eFourFiveS ixSevenEig htNineTen
사견으로 이 문제에서 가장 중요한 것은 주어지는 텍스트의 길이가 같이 안주어진다는 것이라고 생각한다.
종종 문제를 풀다보면 이런 경우가 굉장히 많은데, 보통은
C언어에서는 string헤더 파일을 이용하여 strlen() 라이브러리 함수를 이용 할 수 있다.
> strlen() 은 문자열의 길이를 구하는 라이브러리 함수이다.
예시
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include<stdio.h> #include<string.h> // 문자열관련 함수를 쓰기위해서는 string.h헤더 파일이 필요 int main(void) { char ustr[] = "Hello World. Hi 가나다"; // 문자열길이가 입력한 문자열에 맞춰 증감 printf("%s\n", ustr); // 문자열 출력 printf("%d\n", strlen(ustr)); // 문자열 길이 출력 strlen(변수이름) return 0; } | cs |
C++ 에서는 String을 사용해서 문제를 접근하고,
size()와 length()는 이름만 다를 뿐 같은 일을 하는 멤버 함수다.
혹은 C와 같이
#include <cstring> 를 정의 하고,
strlen() 을 사용한다.
나는 예전에 이야기했듯이,
#include <stdio.h>
#include <malloc.h>
이 두가지만을 사용해서 문제를 해결하는 습관을 들일 것이기 때문에
while 문을 사용해 text 문자열에 NULL 이 존재하면 종료하도록 설정하고 배열에 접근했다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <malloc.h> char text[101]; int cnt; int main() { scanf("%s", text); while (text[cnt++] != '\0') { printf("%c", text[cnt - 1]); if (cnt % 10 == 0) printf("\n"); } return 0; } | cs |