:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
12/10/15 01:26
별 도움이 되지 않을 것 같아서 죄송한데
이런 프로그램 문제를 짤 떄에는 아 2중포문 써야지 뭐 이런것보다 먼저 말로 코드를 작성하세요. 수도코드라고도 하는데 여기서 뭘 해주고 여기서 뭘 반복해주고 이렇게 하면 되겠구나 알고리즘이 세워져아 합니다.
12/10/15 01:45
입력은 그냥 scanf("%d %d", ..)와 같이 한번에 두개씩 n번을 받으시면 됩니다.
데이터가 한줄로 쭉 들어온다 하더라도 버퍼에 남은 입력값들을 알아서 차례로 넣어주므로 한줄에 두개씩 넣은것과 동일합니다. 문제는 알고리즘인데.. 정렬을 하신다는 생각까지는 좋습니다. 근데 사실 나중에 답을 아시고 나면 알고리즘 자체는 간단할겁니다(..) 코딩도 정렬 이후에 8~10줄 정도면 될거 같네요. 어느 수업인가요? (만약 알고리즘이나 PS 수업 과제라면) 그걸 수학적 언어로 증명하는건 좀 귀찮겠지만요.
12/10/15 02:02
.. 코딩도 잘 모르지만, 와 이거 재밌네요.. 알고리즘 짜는데 얼마나 걸리시는지 궁금합니다.
혹시나 나중에 답도 알려주세요. 제가 생각한것과 비슷하게 가는지 궁금하네요.
12/10/15 02:02
어디부터 뭘 해야할지 모르겠다고 생각하는 학생분들에게 드리고픈 말씀인데..
이미 if, for, 뭐 이런거 배우는 시점에서 어떤식으로 문제를 풀어야 할지는 다 배운 상태입니다. DEICIDE 님이 적으신 걸 많이 참고하세요.. 문제를 풀 방법을 생각으로 차근차근 정리하는게 먼저 입니다.
12/10/15 02:04
배열은 길이와 너비값을 가지는 구조체로 하면 되겠네요. 숫자 두 개씩 끊어서요.
그다음은 알고리즘이 필요해요. 여기서부터는 C랑 관계도 없음.. 초콜렛 구조체를 비교해서 이 초콜렛 구조체에서 연속으로 만들 수 있는 초콜렛이 몇 개 있는지를 살펴보는 게 1단계겠죠. 그 다음 논리는 스스로 구해보세요. 제대로 하려면 중첩도 들어가야 되고 알고리즘이 복잡할텐데, 입력단계에서 난감해하는 분이 풀기엔 꽤나 어려운 문제로 보입니다.
12/10/15 02:18
문제가 좀 재밌네요 코딩할 맛 나는 문제 일 듯...
입력 방법은 편한대로 하세요. 2개씩 끊어 받으셔도 되고 1개씩 받아서 홀짝에 따라 가로, 세로 구분해서 집어 넣으셔도 되고요 편한방법 골라서 하세요. 위에서는 2개씩 받게 하셨으니 전 1개씩 받도록 하겠습니다. Chocolate choco[N/2]; 물론 이런식의 가변 배열은 안되지만 어짜피 new건 malloc이건 동적할당으로 생성해둬야 할 겁니다. 아니면 2차원 배열로 해도 상관 없고요. 하지만 2차원 배열보단 구조체쪽이 나을 것 같네요. for(int i = 0; i < N; i++) Chocolate c; 요건 구조체 변수 입니다. int input_var; scanf("%d", &input_var); if(i % 2 == 0) c.width = input_var; else c.height = input_var; choco[i/2] = c; 뭐 이런식으로 인풋 처리하시면 됩니다.
12/10/15 02:28
소팅 해주는 방법을 찾는데서 고민을 해봐야 겠군요. 저 케이스에서 조금 비튼 케이스를 하나 만들어봤는데 판단 기준이 나름 애매해져서...흐흐흐
|