킵고잉

백준 알고리즘 10172번 : 개 (이스케이프 시퀀스 escape sequence) 본문

백준 알고리즘

백준 알고리즘 10172번 : 개 (이스케이프 시퀀스 escape sequence)

여의도비 2018. 9. 3. 22:26

이번 문제는 정말 기본적인 것을 모르면 풀 수 없는 문제였다. 이 문제는 그냥 보면 바로 풀 수 있다는 생각이 든다. 근데 정답률을 보면 39.9%정도 40프로가 안된느 것이다. 조금만 더 자세히 알고 있으면 좋았을 텐데 아쉽다는 생각이 들었다. 공부하면서 사소한 것이라고 넘어갔는데 앞으로는 그럴일이 없었으면 좋겠다. 


문제 나간다.


시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초256 MB49604170091558638.218%

문제

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

입력

없음.

출력

개를 출력한다.




























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



이렇게 생긴 귀여운 개를 보여줘야되는데 따옴표와 작은 따옴표, 그리고 백슬래쉬등 문자형 상수 escape sequence 를 모른다면 원하는 것처럼 나오지 않고 에러가 뜨는 대참사가 벌어진다. 일단 문자형 상수의 종류를 알아보자 

(백슬래쉬는 한글 폰트에서 \으로 표현된다.)



 문자

의미 

 '\b'

 백스페이스

 '\t'

 탭

 '\\'

 백슬래쉬 문자 

 '\''

 작은 따옴표 

 '\"'

 큰 따옴표 

 '\n'

 개행 (줄바꿈) 

 '\r' 

 캐리지 리턴 



여기서 백스페이스와 캐리지 리턴을 조금더 자세 히 설명한다면 

백스페이스는 말그대로 문자 하나를 백스페이스를 눌러 지우는 효과와 같다


"AB" + '\b' + 'C' 는 AC가 되는것이다.


캐리지 리턴은 커서가 맨 앞으로 이동한다음 덮어 쓰는거라고 보면된다.


"AB" + '\r' + 'C' 는 CB가 되는것이다.


이렇게 해결이 된다! 그래서 결국 댕댕이를 출력하는 소스코드는


C++


#include <iostream>

using namespace std;


int main(){

    cout << "|\\_/|" << endl;

    cout << "|q p|   /}" << endl;

    cout << "( 0 )\"\"\"\\" << endl;

    cout << "|\"^\"`    |" << endl;

    cout << "||_/=\\\\__|" << endl;

}


JAVA


class Dog

{

public static void main (String[] args)

{

System.out.println("|\\_/|");

System.out.println("|q p|   /}");

System.out.println("( 0 )\"\"\"\\");

System.out.println("|\"^\"`    |");

System.out.println("||_/=\\\\__|");

}

}


참고로 위의 소그코드에서 큰따옴표 대신 작으은 따옴표를 쓰게 된다면 수로다 변환되서 나오는데 왜그러는지는 아직 잘 모르겠다. 아무튼 큰 따옴표로!!


잘 보셨으면 공감 버튼 눌러주시면 감사하겠습니다!

















Comments