[백준] 10171 고양이

권태형·2023년 11월 24일

알고리즘

목록 보기
7/33

위의 그림과 같이 고양이를 출력하는 문제다.

아주간단하다 생각했다. 실제로 C#으로는 간단하게 해결되었다.

C#

Console.WriteLine(@"\    /\
 )  ( ')
(  /  )
 \(__)|");

@를 상용하면 이후 문자열내의 개행또한 똑같이 적용되어 출력되기 때문에 간단하게 맞출 수 있다.

JS

Javascript에도 당연히 같은 기능을 하는 문자열 리터럴 빽틱이 존재한다. 따라서 똑같은 느낌으로 작성하였지만, 틀렸다는 결과가 나왔다.

console.log(`\    /\
 )  ( ')
(  /  )
 \(__)|")`)

으잉? 이게 왠일? 똑같은 구조인데 왜 틀렸을까 고민해보니 \의 문제였다. 대부분의 언어에서 \는 이스케이프 특수문자로 사용된다. C#도 포함되는 내용이지만, 다른점은 C#의 @뒤에 쓰인 문자열은 \또한 문자열로 그냥 읽는 반면에, javascript에서 백틱 내의 문자열은 \를 그대로 이스케이프 문자로 인식하기 때문이다.

따라서 javascript에서 고양이를 그리기 위해서는 \를 두번씩 사용해 주어야한다.

console.log(`\\    /\\
 )  ( ')
(  /  )
 \\(__)|")`)
profile
22년 12월 개발을 시작한 신입 개발자 ‘권태형’입니다. 포스팅 하나하나 내가 다시보기 위해 쓰는 것이지만, 다른 분들에게도 도움이 되었으면 좋겠습니다. 💯컬러폰트가 잘 안보이실 경우 🌙다크모드를 이용해주세요.😀 지적과 참견은 언제나 환영합니다. 많은 댓글 부탁드립니다.

0개의 댓글