머.. 각 문자별로 입력하는 키 코드 값을 생성한 후에 전체 길이를 구하면 끝~~

;; Get char and return keypad list
;; ex) (mobilepad #\c) -> (2 2 2)
(defun mobilepad (ch)
(cond
((char= ch #\a) '(2))
((char= ch #\b) '(2 2))
((char= ch #\c) '(2 2 2))
((char= ch #\d) '(3))
((char= ch #\e) '(3 3))
((char= ch #\f) '(3 3 3))
((char= ch #\g) '(4))
((char= ch #\h) '(4 4))
((char= ch #\i) '(4 4 4))
((char= ch #\j) '(5))
((char= ch #\k) '(5 5))
((char= ch #\l) '(5 5 5))
((char= ch #\m) '(6))
((char= ch #\n) '(6 6))
((char= ch #\o) '(6 6 6))
((char= ch #\p) '(7))
((char= ch #\q) '(7 7))
((char= ch #\r) '(7 7 7))
((char= ch #\s) '(7 7 7 7))
((char= ch #\t) '(8))
((char= ch #\u) '(8 8))
((char= ch #\v) '(8 8 8))
((char= ch #\w) '(9))
((char= ch #\x) '(9 9))
((char= ch #\y) '(9 9 9))
((char= ch #\z) '(9 9 9 9))
((char= ch #\Space) '(0))
(t
(error "Incorrect Charater"))))
(defun str2pad (str)
(cond ((= (length str) 0) '())
(t
(append
(mobilepad (char str 0))
(str2pad (subseq str 1 (length str)))))))
;; 코드 길이 구하기
(defun padlength (str)
(length (str2pad str)))

댓글 없음:
댓글 쓰기