IT일반2014.11.15 06:21

우연찮게 김창준님의 블로그에서 재미있는 퀴즈를 하나 발견했다. 개발자를 뽑는 어떤 회사의 채용 퀴즈인데, 시효는 이미 지난 문제지만 나 자신이 이런 종류에 필이 꽂히는 타입이라서 자세히 들여다보게 되었다.

퀴즈의 내용은 숫자를 입력 받아서 그에 해당하는 문자를 출력하는 것이고, 규칙은 엑셀과 같은 스프레드시트처럼 1은 A로, 2는 B로 변환하며, 26인 Z 다음부터는 AA, AB, … 에 해당된다. 프로그래밍 언어에는 제약이 없다. 필요하면 라이브러리를 동원해도 된다고 퀴즈 공고문에는 기재되어 있었다.

원래의 포스트에는 J언어로 아예 역함수까지 알짜배기로 짠 소스를 구경할 수 있었지만, 트랙백을 통해 다른 언어들로 시도된 내용을 보니 자바스크립트에 익숙한 입장에서 기왕이면 처음 발견했던 역함수 포함 J언어 버전과 격을 맞출 수 있는 코드를 구현해 보고픈 도전의식에 불타올라 버렸다.

<script>
function i2AB(n){return --n==-1?"":i2AB(Math.floor(n/26))+String.fromCharCode(65+n%26)}
function AB2i(s,p){p=p||0;return s==""?eval(p):AB2i(s.substr(1), "("+p+")*26+"+(s.charCodeAt(0)-64))}
</script>
<input id="num" value="65535">
<input type="button" value="1 to A" onclick="var n=document.getElementById('num');n.value=i2AB(parseInt(n.value))">
<input type="button" value="A to 1" onclick="var n=document.getElementById('num');n.value=AB2i(n.value)">

진지하게 Pure JS로 역함수까지 구현했다. 테스트는 바로 여기에서...

포스팅을 완성하고 나서 혹시나 싶어서 해당 회사 홈페이지에 들어갔더니 새로운 퀴즈가 걸려있다. 그건 다음 기회에...

P.S. 현재까지 출제된 모든 퀴즈가 수록된 좌표를 드디어 찾았다.

P.S. 하지만, 대부분의 철지난 퀴즈들은 이미지파일 소실로 확인 불가... -_-;

저작자 표시 비영리
신고
Posted by 한방에컴을잡은 nextream

댓글을 달아 주세요

  1. 비밀댓글입니다

    2015.01.12 14:51 [ ADDR : EDIT/ DEL : REPLY ]
    • 우옹.. 글 남겨주셔서 감사~
      깔끔...한게 아니라 허전한거죠 ㅋㅋ
      바빠서 마비는 요새 못하고 있지만
      들어가보고 싶긴 한데 통 짬이 안나네요.
      따뜻한 봄이 오면 들어가볼 수 있을지도~ ^^;

      2015.02.02 13:22 신고 [ ADDR : EDIT/ DEL ]
  2. 잘지내세요 ???

    2015.07.26 13:23 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 어... ROA라는 키워드가 무척 낯이 익긴 한데.. 정작 구체적으로 기억이... 쿨럭... 정신없이 바쁘게 살다보니 치매가 오는 것인가!! ㅠㅠ

      2015.08.14 01:04 신고 [ ADDR : EDIT/ DEL ]