| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
조강현
가입: 2026년 3월 9일 올린 글: 2
|
올려짐: 2026년6월21일 15:57 주제: [챌린지 5번] 문제 표기 관련 질문 |
|
|
안녕하세요, 조교님. 챌린지 마감이 얼마 남지 않은 시점에 질문을 올려 죄송합니다.
다름이 아니라 챌린지 5번 문제의 표기 관련 질문이 있습니다.
문제 설명에서 등장한 c→next는 pointer로 주어져있습니다. 또한 포인터(엣지)마다 flip bit가 하나씩 주어져있다고 써있습니다.
따라서 c->next는 c에서 다음 노드를 가리키는 "엣지"로 볼 수도 있지만, "노드 포인터"로도 사용될 수 있는 것 같습니다.
따라서 pointer의 flip bit에 접근하는 표기를 문제에서 등장한 c→visitBit처럼 c->next->flipBit로 적을 경우, (c->next)->flipBit처럼 엣지마다 주어진 bit가 아닌 노드에 딸린 bit로 혼동될 수 있을 것 같습니다.
하지만 c->next.target과 c->next.flipBit 처럼 주소와 flipBit로 나누어 접근하는 notation 또한 c->next가 포인터라는 문제 설명에 어긋나는 것 같습니다.(c->next.target과 c->next 둘 다 노드 포인터로 취급되는 문제가 있습니다.)
이것을 어떻게 해석하고(노드 포인터가 곧 엣지인 문제 설명), flip bit에 대한 접근을 어떤 notation으로 사용하는 것이 문제의 원래 가정인지 여쭙고 싶습니다.
감사합니다. |
|
| 위로 |
|
 |
신채환 Site Admin
가입: 2024년 3월 6일 올린 글: 35
|
올려짐: 2026년6월21일 18:18 주제: |
|
|
안녕하세요? 조교 신채환입니다.
문제 5번에서의 포인터는 비트가 하나 추가됐으므로 C 문법에서의 포인터라기보다는 C 포인터와 비트로 구성된 구조체로 봐주시면 될 것 같습니다.
감사합니다. |
|
| 위로 |
|
 |
안중원 Site Admin
가입: 2023년 3월 13일 올린 글: 103
|
올려짐: 2026년6월21일 19:47 주제: |
|
|
안녕하세요, 조교 안중원입니다.
위 답변에 보충 설명 드립니다.
챌린지 답안을 쓸 때에는 notation을 정확히 정의하고 알고리즘을 설명하면 문제가 없을 것입니다. 제안하신 것과 같이 "포인터 값은 c->next.target, flip 비트는 c->next.flipBit"로 하든, "포인터 값은 c->next, flip 비트는 flip bit of c->next)"로 하든, 그 외의 더 나은 표기법을 사용하든, 그 의미가 정확히 전달되기만 한다면 상관없습니다.
실제 C언어에서 구현한다면 신채환 조교님이 말한 것처럼 필드 두 개로 구성된 구조체로 표현할 수 있을 것이고, 비트필드 혹은 정수 타입(unsigned int 등)과 비트 연산을 직접 사용할 수도 있을 것입니다.
감사합니다. _________________ TA 안중원
e-mail: jwahn@ropas.snu.ac.kr |
|
| 위로 |
|
 |
|