본문 바로가기

백준 PS일지

[백준/C언어] 10172번 : 개 . 코드리뷰 + 느낀점

문제

아래 예제와 같이 개를 출력하시오.

입력

없음.

출력

개를 출력한다.

 

 

예제 출력 1 복사

|\_/|
|q p|   /}
( 0 )"""\
|"^"`    |
||_/=\\__|

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

 

10172번: 개

문제 아래 예제와 같이 개를 출력하시오. 입력 출력 예제 입력 1 복사 예제 출력 1 복사 |\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\__|...

www.acmicpc.net


이 문제를 풀기 위해서는 반드시 표준 입출력에 정의된 printf() 함수와 특수문자 출력 방법을 알아야 합니다.

예제 문제 출력 1번줄의 경우

|\_/|

역슬래쉬 \ 를 printf 로 출력을 하기 위해서는 역 슬래쉬를 두번 사용해야 합니다.

 

만약 슬래쉬를 출력하고 싶은 경우

printf("\"); 와 같은 코드를 입력했다면 다음과 같은 오류가 나타납니다.

\" 이 문장으로 인해 "를 한개의 출력문자로 인식 되었고,

  printf(" ㅁ); 의 형태가 되어

 

결과적으로 닫는 따옴표 " 가 위의 문장에 없는 것입니다.

역슬래쉬를 출력하고 싶을 경우

이와같이 역슬래쉬를 두번 써야합니다.

예제 출력 3번줄의 경우에는

( 0 )"""\

큰 따옴표가 연속적으로 출력되었습니다.

printf() 함수에서 따옴표는 출력할 문장의 시작과 끝을 나타나기에

큰 따옴표 " 를 출력하기 위해서는 앞에 역슬래쉬를 붙여주어야 합니다.

(작은 따옴표를 출력하기 위한 방법 또한 큰 따옴표의 출력방법과 동일합니다)

위의 조건을 고려하여 코드를 구현한다면

#include <stdio.h>

int main(void) {
    printf("|\\_/|\n");
    printf("|q p|   /}\n");
    printf("( 0 )\"\"\"\\\n");
    printf("|\" ^ \"`    |\n");
    printf("||_/=\\\\__|");
    return 0;
}

 이와같은 코드를 구현할 수 있습니다.


10171번과 마찬가지로

10172 : 개 문제를 풀면서 주의해야할 점은 

printf함수를 사용할 때 "(큰따옴표)를 출력하는 방법과 

\ 역슬래쉬를 출력하는 방법을 알고 있다면 쉽게 풀 수 있는 문제임을 느꼈습니다.