<문제 10171>
: 아래 예제와 같이 고양이를 출력하시오.
\ /\
) ( ')
( / )
\(__)|
<실패>
처음 봤을 때는 바로 각 문장을 출력을 시키면 된다고 생각했습니다. '(2번째 줄)를 고려해서 각 문장은 ""를 이용해서 담았지만, 1번째와 4번째(마지막)줄에서 오류가 발생하였습니다.
<해결>
\ -> \\
/는 일반 문자들과 같이 출력에 문제가 없지만, /와 반대 방향인 백슬래시(\)는 특수문자로 이용됩니다. \는 입출력에서는 \\(\를 2개 연속으로 사용하는 것)으로 해당 백슬래시(\) 1개를 출력할 수 있습니다.
그래서 해당 \가 존재해야 하는 자리에 1개씩 추가로 \를 추가함으로써 해결하였습니다.
<정답 코드>
Python
print("\\ /\\")
print(" ) ( ')")
print("( / )")
print(" \\(__)|")
Java
public class Main {
public static void main(String[] args) {
System.out.println("\\ /\\");
System.out.println(" ) ( ')");
System.out.println("( / )");
System.out.println(" \\(__)|");
}
}
문제 10171
: 아래 예제와 같이 개를 출력하시오.
|\_/|
|q p| /}
( 0 )"""\
|"^"` |
||_/=\\__|
<실패>
처음 봤을 때는 10171번과 같이 백슬래시(\)에 대한 오류만 처리하면 된다고 생각했습니다. 하지만 이것은 다른 특수문자를 못했기에 발생한 실패였습니다.
<해결>
" -> \"
"" -> \"\"
"" -> "" (그대로 사용)
"(큰 따옴표) 역시 특수문자로 문자열을 나타내기 위해 사용하므로 입출력에서 홀수 개로 사용될 때는 \를 앞에 넣어서 사용을 해야합니다. ""와 같이 쌍으로 따옴표가 존재한다면 문자열로 출력이 되므로 \를 사용하지 않아도 됩니다.
<정답 코드>
Python
print('|\\_/|')
print('|q p| /}')
print('( 0 )\"\"\"\\') # or print('( 0 )""\"\\')
print('|\"^\"` |') # or print('|"^"` |')
print('||_/=\\\\__|')
'알고리즘 > BACKJOON' 카테고리의 다른 글
[백준] 1110번 : 더하기 사이클 <실패> (0) | 2022.01.14 |
---|---|
[백준] 10951번: A+B - 4 (0) | 2022.01.13 |
[백준] 2439번: 별 찍기2 (0) | 2022.01.12 |
[백준] 10871번: X보다 작은 수 (0) | 2022.01.12 |
[백준] 15552: 빠른 A+B (0) | 2022.01.12 |