Post

백준 27903 인생 문제 풀이

백준 27903 인생 문제 풀이

백준 온라인 저지, 27903번: 인생

도입

코드 안에 백준 아이디를 구성하는 그 어떤 문자도 포함할 수 없다. 아이디가 belline0124이므로 b, e, i, l, n, 0, 1, 2, 4를 코드에 사용할 수 없다.

풀어보기

아이디에 포함된 문자 피하기

문자도 결국 일정한 정수로 표현할 수 있다.

문자문자
b98048
e101149
i105250
l108452
n110  

아이디에 포함된 숫자 피하기

정수로 문자를 표현할 수 있지만, 아이디에 숫자가 포함된 경우 숫자 역시 간접적으로 표현해야 한다.

1
2
3
4
5
#DEFINE ZERO 5 - 5
#DEFINE ONE  6 - 5
#DEFINE TWO  7 - 5
#DEFINE FOUR 9 - 5
#DEFINE TEN  5 * TWO

난해한 프로그래밍 언어 사용하기

아이디에 따라 상황이 다르겠지만, 일반적으로는 print, printf, cout, echo 등도 사용할 수 없을 가능성이 높다. 루비의 사전 정의 변수인 $> 정도는 되어야 할 것으로 보인다.

루비를 사용하는 것도 아이디가 모든 숫자 문자를 포함하는 경우에 풀이가 불가능하다.

하지만 난해한 프로그래밍 언어는 보통 알파벳과 숫자 문자를 사용하지 않으므로 아이디에 포함된 문자를 피하고 코드를 작성할 수 있다.

사실은 위의 문자 피하기, 숫자 피하기 전략 역시 난해한 프로그래밍 언어에서는 자주 사용하는 전략이다.

대표적으로 아희와 엄준식은 한국어 문자셋을 사용하고, 브레인퍽은 몇 개의 특수문자만을 사용한다. 즉 이 문제에서 모든 아이디에 대해 대응이 가능한 방법은 난해한 프로그래밍 언어를 사용하는 것이다.

1
2
3
4
5
6
7
8
밤밣따빠밣밟따뿌
빠맣파빨받밤뚜뭏
돋밬탕빠맣붏두붇
볻뫃박발뚷투뭏붖
뫃도뫃희멓뭏뭏붘
뫃봌토범더벌뿌뚜
뽑뽀멓멓더벓뻐뚠
뽀덩벐멓뻐덕더벅

마무리

답안에는 가장 익숙한 난해한 프로그래밍 언어, 아희를 사용했다.

27903 아희 답안