이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
정형식
가입: 2013년 9월 4일 올린 글: 12
|
올려짐: 2013년10월13일 15:13 주제: [hw 4-1] 0인코딩 여부에 대한 추가질문입니다 |
|
|
강지훈 씀: | 1. 빈도수가 0인 경우 코딩하지 않아"도" 좋습니다.
2. 해는 여럿 있을 수 있습니다.
크기고정이건, 크기변동이건, 어찌되었건
코딩한 문장이 가장 짧도록 만들면 됩니다.
예를 들어, 입력
(list (cons "a" 5) (cons "b" 1) (cons "c" 1) (cons "d" 1))
에 대해, 출력
(list (cons "a" (list 1)) (cons "b" (list 0 0)) (cons "c" (list 0 1 0)) (cons "d" (list 0 1 1)))
을 내놓아도 최적의 코딩입니다. |
4-1에서 빈도수가 0인 경우 코딩하지 않아도 좋다고 하셨는데
빈도수가 0인경우를 인코딩 하는경우와 안하는 경우 문장의 길이가 차이나서 질문드립니다.
예를 들면 뼈대코드에 들어있는
(list (cons "a" 3) (cons "b" 4) (cons "c" 5) (cons "d" 6) (cons "e" 0))에서
0을 인코딩하지 않으면
'(("a" 0 0) ("b" 0 1) ("c" 1 0) ("d" 1 1)) 등 다양한 형태로 각 문자에 00~11이 배정될 수 있는데요
0을 인코딩할 경우
'(("c" 0 1) ("d" 0 0) ("a" 1 1 0) ("e" 1 1 1) ("b" 1 0))
처럼 a가 세글자로 표현됩니다. 이 때 score가 36에서 39로 늘어나게 되는데
이 경우도 "코딩한 문장이 가장 짧도록 "으로 인정해주시나요? |
|
위로 |
|
|
복영빈
가입: 2013년 9월 14일 올린 글: 9
|
올려짐: 2013년10월14일 0:19 주제: 저도 같은 질문입니다. |
|
|
윗 학생분께서 말씀하신 것처럼
e 때문에 길이에 차이가 나서 grader 에 X 가 뜨게 되는데
zero frequency 인 e에 대한 정보를 아얘 없애는 함수를 새로 만들어야 할지
고민하다가 만약에
"e 0" 뿐만아니라
"f 0" "g 0" "h 0" 이런식으로 빈도수 가 없는 string 이 계속 추가 되면
답이 너무 길게 나오기 때문에 저는 일부러 빈도수 0인 string 은 없애는 함수를
따로 만들었는데요,
그렇게 해도 맞는것인지 궁금합니다. |
|
위로 |
|
|
강지훈
가입: 2008년 9월 2일 올린 글: 291 위치: 302동 312-2호
|
올려짐: 2013년10월14일 13:04 주제: |
|
|
0인 문자를 집어넣어서 39를 얻었다면, 가장 짧은 코드를 얻은 것이 아닙니다 (36이 있기 때문에).
복영빈님처럼 0인 경우 아예 무시하는게 괜찮다고 생각합니다. _________________ 강지훈
프로그래밍의 원리 조교
Jeehoon Kang
TA, Principles of Programming |
|
위로 |
|
|
|