-
[BOJ]백준 11718번: 그대로 출력하기Problem Solving/BOJ(백준) 2019. 2. 6. 21:32
문제 : 입력 받은 대로 출력하는 프로그램을 작성하시오.
입력조건: 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.
출력: 입력받은 그대로 출력한다.
printf와 scanf만 사용하는 간단한 문제 같지만, 의외로 한번에 맞히는 사람이 드물다
알고리즘 문제풀이에 이용되는 스킬들을 알고있으면 바로 풀 수 있는 간단한 문제
한 줄이 100글자를 넘지 않는 입력조건을 고려해주어 문자열 배열 크기를 설정한다
(참고로 입력 조건 중에서는 코드를 짤 때 고려해주어야 하는 조건과, 아닌 조건이 존재한다)
12345#include <cstdio>int main() {char arr[101];return 0;}cs 일단 줄 수가 명시되어 있지 않고, 입력을 받는대로 계속 출력을 해주어야 한다
입력이 들어오면 계속 출력을 해주기 위해 while문에 조건으로 입력이 끝날 때 까지를 의미하는 EOF를 사용해준다.
123456#include <cstdio>int main() {char arr[101];while(scanf("%s", arr) != EOF){}return 0;}cs 또한 이 문제에서는 공백을 포함해서 한 줄을 의미하는데, 일반적인 scanf로는 공백을 받을 수 없으므로, \n(개행문자)를 제외하고 전부 입력으로 받기 위해 조건을 추가해준다.
그리고, 여러 줄을 받기 위해서 한 줄을 입력할 때마다 버퍼때문에 글자가 먹히는걸 방지하기 위해 공백을 추가해준다
123456#include <cstdio>int main() {char arr[101];while(scanf(" %[^\n]s", arr) != EOF){}return 0;}cs 마지막으로, arr을 입력해줄 때마다 그 문장을 출력해주기만 하면 끝이다
1234567#include <cstdio>int main() {char arr[101];while(scanf(" %[^\n]s", arr) != EOF)printf("%s\n", arr);return 0;}cs 'Problem Solving > BOJ(백준)' 카테고리의 다른 글
[BOJ]백준 17144번: 미세먼지 안녕! (440) 2019.06.23 [BOJ]백준 11559번: Puyo Puyo (424) 2019.05.17 [BOJ]백준 16917번 : 양념 반 후라이드 반 (398) 2019.04.26 [BOJ]백준 16923번: 다음 다양한 단어 (408) 2019.04.26 [BOJ]백준 15804번: 저거 못 타면 지각이야!! (433) 2019.04.25