[BOJ #10171] 고양이

OneUne·2021년 1월 3일
0

Algorithms

목록 보기
3/4

해당 문제를 처음 접한 나는 그냥 예제 출력 복사해서

print("""\    /\
 )  ( ')
(  /  )
 \(__)|""")

이렇게 적어버렸다. ofc this is python.
그런데- 오답😂😂
따로 돌려볼 생각도 없이 소스만 제출했는데 오답이 뜨길래 이게 뭐지? 싶었다.

실제로 위 코드를 돌려보면

 \    / )  ( ')
(  /  )
 \(__)|

이렇게 나온다.
나의 \\n 친구는 어디갔냐며,,
print 안에 넣었던 친구를 변수에 넣어서 해당 변수를 출력해보니
\\ / ) ( ')\n( / )\n \\(__)|
이렇게 나온다.

이스케이프 시퀀스를 만드는 "\"

원래 python에서 \는 escape sequence(or characters)를 만드는 데 사용되는 문자라고 해서 \을 표현하기 위해서는 \\ 과 같이 사용해주어야 하는 게 맞다.

The backslash ("\") character is used to escape characters that otherwise have a special meaning, such as newline, backslash itself, or the quote character.

즉, print("\") 와 같이 입력시 오류가 난다. 왜냐하면 "이 하나 더 필요해서! \" 이렇게 사용한다는 건 문자열 안에서 "를 나타나겠다는 말과 같기 때문이다.

print("\ ") 이렇게 한 칸 정도 공백을 둬 주면 의도대로 \ 을 출력해준다.

그래서 앞서 \ 뒤에 공백이 있던 친구들은 알아서 \\으로 변환되었으나,

a = """ \
"""

이런식으로 뒤에 줄바꿈이 되어버리면 a는 그냥 한 칸의 공백을 저장한다.

sooooo 문제가 있던 첫 줄에만 \을 하나 더 추가해주면 정답!

print("""\    /\\
 )  ( ')
(  /  )
 \(__)|""")
profile
그러니까 이제 장차 멋쟁이 토마토가 될

0개의 댓글