:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
09/05/12 15:02
프로그램을 짜시는데 컴파일을 할 수 없는 상황이라면 어떻게 프로그램을 짜겠다는건지 모르겠습니다...ㅡ.ㅡ;
일단 로직상으로 문제가 있어 보이는 곳은 사람 중 한 명이라도 0이 되면 더 이상 1씩 감소하지 않겠다고 했는데 else 부분을 실행하고 난 후에도 다음 번 i에 대한 루프에서 그 노드에서 첫번째 사람의 값이 0이 아니라면 여전히 1씩 빼게 되겠군요. else 부분에서 0이 된 사람이 있는 순간 break를 써서 바깥쪽 루프로 뛰어나가야 할 것 같고 노드 상에 비트를 하나 더 둬서 한 명이라도 0을 가지고 있는지 명시해야겠군요. 그 비트가 설정되어있다면 continue로 다음 노드로 넘어가야겠군요.
09/05/12 15:05
아래 질문을 보니 0이 하나라도 생기면 사람 수를 명시하던 부분을 0으로 바꾸어 버리는군요. 그렇게 한다면 지금 로직으로 별 문제 없을 것 같습니다.
09/05/12 15:09
MoreThanAir님// 아 지금 당장 할 수 없다는 소리였습니다. ^^ 결국 컴파일은해봐야겠지요.
그리고 각 노드상에 맨처음 비트에 각 노드에 속해있는 사람의 숫자만큼의 숫자가 기입되어있습니다.(첫번째 노드의 경우는 5네요) if문에서 else부분에 사람의 값이 0이 되는 경우 node[i][0] = 0; 이부분을 통해 첫번째 숫자를 0으로바꿔버립니다. 그렇게해서 해결하도록 하긴했습니다. 후~ 역시 정확히 알지못하는 상황에서 하려니 힘드네요. 답변주셔서 감사합니다.
09/05/12 15:11
MoreThanAir님// 네이버에서 검색해보니까 %d랑 %i랑 별차이없다고해서 일단 그렇게해뒀습니다. 실제로 작성할때는 분명 에러가 무수히 발생할것이므로 다 뜯어고쳐야겠죠.
09/05/12 15:57
이미 0이 나온 노드를 처리하지 않는 코드가 필요하겠네요
저런식으로라면 result가 -값으로 계속 갑니다. 그리고 이문제가 무엇을 의미하는지 모르겠네요;; result가 무얼 구하는지
09/05/12 16:04
맞는 것 같습니다. 컴파일해봤는데 별 에러가 없네요.
Memex님// 한 번 처리하고 나면 node[i][0] = 0; 이 되기 때문에, for 조건에 걸려서 그 노드는 절대로 다시 처리될 수 없습니다. 따라서 -값으로 계속 갈 이유는 없을 것 같네요.
09/05/12 16:22
꿀호떡a님// 정말 감사드립니다. 제일 중요한게 컴파일이 무난히 되는지가 중요했는데 컴파일을 해보셨군요. 다시 한번 감사드립니다. 제일 중요한 뼈대는 완성이 된거군요. 뭐 이제 살을 붙이긴해야하지만 그건 아무것도 아니죠. ^^ 감사드립니다. (__)
Memex님// 아 솔직히 저도 이게 무슨 의미가 있는지는 모르겠네요. 어느분 부탁으로 해드리는거라 간략히 설명만 들은거라서요.
|