PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2009/05/12 10:31:18
Name 이준태
Subject c언어 관련 질문입니다. 답변해주시면 감사하겠습니다.
미리 답변해주시는 모든 분들께 감사드립니다.

아래 예시가 있습니다.

세 개의 노드가 있는데 각각의 노드는 갯수의 차이가 있습니다.
예를 들어
node1 = 5, 11, 22, 31, 43, 52  (총5개)
node2 = 3, 12, 33, 14 (총3개)
node3 = 2, 21, 25 (총2개)
각 노드의 맨 앞의 숫자는 제가 이용하는 실제 숫자의 갯수가 들어가 있습니다.

그리고 for문을 이용하여 for문이 한번돌때마다 맨앞의 숫자를 제외한 각 node의 숫자를 1씩 감소시킵니다.
for문 한번돌면 결과값이
node1 = 5, 10, 21, 30, 42, 51
node2 = 3, 11, 32, 13
node3 = 2, 20, 24
이렇게 됩니다.

그리고 for문 계속돌다가 숫자가 0이되는 경우 그 노드는 사용불가로 만들게됩니다. 사용불가 확인은 각노드의 맨앞에 숫자로 파악할수 있죠.
node1 = 0, 0, 11, 20, 32, 41
node2 = 3, 1, 22, 3
node3 = 2, 10, 14
10번 더 for문이 돌아간다면 node1의 두번째 숫자가 0이되므로 node1의 맨처음값인 5를 0으로 바꾸게됩니다.

이제 질문드리겠습니다.
1. 각 노드들을 배열 선언해서 처리하고싶은데 그게 어렵습니다.
node1[6] = {5, 11, 22, 31, 43, 52}
node2[4] = {3, 11, 32, 13}
node3[3] = {2, 20, 24}
이렇게 선언하자니
int i;
for (i=1 ;  이 부분을 어찌할 방법이 없습니다. ; i++) <-- 각 노드의 배열크기가 제각각 달라서 define을 이용할 수도 없습니다.

2. 그렇다고 2차원배열을 이용할 수도 없습니다.
node[3][] <-- 이것도 배열의 크기 설정을 할 수가 없습니다. 크기가 제각각이라서요.

node[3][6] <-- 이렇게 노드의 최대 크기를 설정하는 방법도 사용 불가능합니다.

어찌해야하는지 방법을 여쭙고 싶습니다. 약간의 팁이라도 좋으니 답변좀 부탁드립니다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
꿀호떡a
09/05/12 10:43
수정 아이콘
node[3][6]의 형태로 2차원 배열을 이용하시면 됩니다. 굳이 모든 공간을 다 효율적으로 쓰셔야 겠다면 Linked list를 사용하시면 되겠지만, 별로 그럴 필요가 없어 보이네요.
각 노드의 배열 크기는 따로 저장하면 되죠. 제가 정확히 이해는 못했는데 각 노드의 0번지에 들어있는 값(5, 3, 2)가 결국 array size 아닌가요? for문 안에는 이 array size만큼 반복하게 만들면 되겠고요.
09/05/12 10:58
수정 아이콘
2차원 배열을 사용하지 말라고 압박을 넣었다면, linked list 밖에 답이 없는 듯 합니다.
linked list에 대한 자세한 설명은 자료구조의 대부분 책들에 있구요.

아니면 for(i=0 ; i=node1[0] ; i++ ) 식의 방법은 안될까요? (Array의 시작이 0번부터죠?)
이건 위의 님이 설명하신 방법인데요. 이건 실험을 좀 해봐야겠네요 : )
이준태
09/05/12 11:10
수정 아이콘
꿀호떡a님// 답변 감사드립니다. 꿀호떡a님이 이해하신게 맞습니다. 그럼 노드의 숫자들을 일일이 넣어야하는건가요?
node[3][6] =
5, 10, 21, 30, 42, 51, 0, 3, 11, 32, 13, 0, 0, 2, 20, 24
이런식으로 일일이 숫자를 써넣어야하는건가요?
그리고 for문을 이용할때
int i, j;
for (i=0 ; i < 3 ; i++)
for (j=1 ; j < node[i][0] ; j++)
이렇게 해도되긴하는건지요? 다시 한번 답변에 감사드립니다.
이준태
09/05/12 11:13
수정 아이콘
Futrues님// 답변해주신거 감사드립니다. 2차원배열 사용해서하는게 가장 좋을거같은데 제가 2차원배열에 대해 잘모르는게 많아서 그렇습니다.2차원 배열 사용해서 작성하면 더 좋겠죠. linked list도 한번 알아보겠습니다.
중요한건 방식이 중요한게아니라 결과값만 제가 생각하는대로 나오면되는거거든요. ^^

다시한번 답변에 감사드립니다. 참고하겠습니다.
09/05/12 12:57
수정 아이콘
코딩이 그렇게 복잡하지도 않을거고 (data 추가 삭제가 없으니까)
linked list 쓰는게 가장 속편해 보입니다.
data size가 정해져 있다면 걍 배열로 싸잡아 돌려도 무방하겠구요.
꿀호떡a
09/05/12 13:16
수정 아이콘
이준태님// 예, 그렇게 하시면 됩니다 :)
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
55480 워드작업하기 용이한 소형기기 추천부탁드립니다. [8] zeros1918 09/05/12 1918
55479 오레, 보꾸, 와타시의 차이점을 알려주세요~ [13] Latanta27643 09/05/12 27643
55478 엑셀에서 자꾸 공유위반이라고 뜹니다. [1] peoples elbow3203 09/05/12 3203
55477 인터넷 창이 자꾸 닫힙니다. ㅠㅠ [10] 재민이고모2140 09/05/12 2140
55476 전성기 시절 기준으로.. 종족별 확실한 스나이핑 카드는.. [16] 마르키아르2231 09/05/12 2231
55475 꿀호떡a님을 비롯한 c언어에 대해 아시는 분들께 [12] 이준태1593 09/05/12 1593
55474 파마질문~ (파일있음) [1] on&on1803 09/05/12 1803
55472 재테크 관력 책 추천바랍니다. [1] 개스통2130 09/05/12 2130
55471 텔넷 프로그래밍 질문입니다..ㅠㅠ [4] EZrock2114 09/05/12 2114
55470 항방작계 가야하는데 복장 질문있습니다. [4] dldlmam2135 09/05/12 2135
55469 운전자보험, 필요할까요? [3] amoelsol2130 09/05/12 2130
55468 혹시 청춘전 보유하고 계신 분 있나요? rAchdom.1696 09/05/12 1696
55467 pmp 코원o2 제품 질문드립니다. [3] Enjoy1809 09/05/12 1809
55464 그래픽 카드 질문입니다. [3] Le35nd1553 09/05/12 1553
55463 박정석 선수 지난 경기 벤치에 앉아 있었나요? [4] 선미남편2090 09/05/12 2090
55462 (급질) 다나와 표준 컴퓨터 구입시 문제..(그래픽 카드) [4] hi~마린2098 09/05/12 2098
55461 솔비가 1년정도 사궜다는 남자가... [11] 슈투카3990 09/05/12 3990
55460 지역화가 뭐죠..? [9] The탱자Q1581 09/05/12 1581
55459 오메가 3 와 비타민에 대한 질문 [5] on&on1860 09/05/12 1860
55458 c언어 관련 질문입니다. 답변해주시면 감사하겠습니다. [6] 이준태1793 09/05/12 1793
55457 샤프펜슬에 대한 질문입니다. [7] hoho9na3296 09/05/12 3296
55455 악몽을 자주 꾸고 있습니다. 해결책(?) 도움 구합니다. [8] Surrender2237 09/05/12 2237
55454 버스와는 약간 다른 "지트니" 에 대해서 궁금합니다. [4] Xell0ss2959 09/05/12 2959
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로