PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2012/10/15 01:21:05
Name SaMid
Subject C언어 코딩 질문입니다.
한공장에서 하나의 기계가 길이와 너비가 다양한 초콜렛을 만들어낸다. 살펴보니 현재만들고 있는 초콜렛의
길이와 너비가 바로 전에 만들었던 초콜렛의 길이, 너비보다 크거나 같아야만 기계가 쉬지않고 작동하고있다.
만약 현재 만들고 있는 초콜렛의 길이 또는 너비가 바로 전에 만든 것보다 작다면, 기계가 준비 작업을 하는데
1분이 소요된다는 것을 알았다,.
철수는 주문 받은 초콜렛의 길이와 너비를 보고 어떤 초콜렛부터 만들어 나가는 것이 기계의 준비 작업에 소요되는
시간을 줄일 수 있을지 고민하고 있다.
주문 받은 초콜렛의 길이와 너비를 읽어 기계의 준비 작업을 최소화 시킬 수 있도록 초콜렛의 순서를 나열하는 프로그램을
작성하라.
단 첫 초콜렛을 만들 때 기계의 준비작업 시간은 1분이다.
첫줄에는 주문받을 초콜렛의 개수 N(1<N<5000)이다.
둘재 줄에는 초콜렛의 길이 SL과 초콜렛의 너비 SW가 N개의 쌍으로 나열된다.

출력형식 : 주문받은 초콜렛을 만드는데 기계가 준비 작업에 소요한 최소의 시간을 출력한다.

입력 예 : 5
             4 9 5 2 2 1 3 5 1 4
출력 예 : 2

이런 문제인데요, 처음에는 쉽게 생각하고 하려고 했는데 아무리 머리를 굴려봐도 어떻게 접근해야될지를 모르겠네요.
(4,9) (5,2) (2,1) (3,5) (1,4) 이런식으로 저장되게 해서 비교를 해야될 것 같은데요 만약에 개수를 위의 문제와 같이 5을 입력하면
(o,o) 이런 형식으로 5개가 저장되게 짜야될 것 같은데요 어떻게 해야될까요..

배열을 써야될 것 같은데 길이 너비를 번갈아가면서 입력을 해야해서 배열을 어떤식으로 써야할지 감이 잘 안오네요.
2중 포문을 써서 작성을 해야되는걸까요? 자료 저장을 해놓고 시작해야되는데 거기서부터 막히니 난감하네요 ㅠ

또 처음에 입력을 다 하면 맨 처음에 어떤 초콜렛을 먼저 만들지 결정해야 될 것 같은데, 정렬을 미리 해야하는건지도
궁금합니다.

통합규정 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
수정 아이콘
소팅 해주는 방법을 찾는데서 고민을 해봐야 겠군요. 저 케이스에서 조금 비튼 케이스를 하나 만들어봤는데 판단 기준이 나름 애매해져서...흐흐흐
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
149258 C언어 코딩 질문입니다. [7] SaMid1526 12/10/15 1526
149257 현재 lol의 인기가 어느 정도죠? [23] Alien2806 12/10/15 2806
149256 [lol] 북쪽 걸리면 UI방해 안되나요? [4] 방구차야1582 12/10/15 1582
149255 금융 영어 해석 질문 드립니다. [3] 드라군의 뇌1533 12/10/15 1533
149253 연극추천 부탁드려요~!! [2] 낭만랜덤1197 12/10/15 1197
149252 아... 이 노래를 어디서 들어본 것 같은데... [2] 아이유1845 12/10/15 1845
149251 반삭하고 머리기르는데 얼마나 걸리나요? [6] 크로우7954 12/10/15 7954
149250 피씨방 천원씩 받아서 남는게 있나요? [28] 탄야3409 12/10/15 3409
149248 국내구매 아이폰 해외에서 리퍼가능한가요 [2] 촉호파이1698 12/10/14 1698
149247 [lol]실력을 올리려면? [3] 레몬커피1687 12/10/14 1687
149246 요즘 운전면허학원 얼마정도인가요? [4] 독취사닥취뽀1620 12/10/14 1620
149245 lol 미니맵 어떻게 해놓으시나요? [12] 야쿠자2737 12/10/14 2737
149244 안철수는 정당없이 가능할까요.. [10] 아레스1932 12/10/14 1932
149243 xcom 하시는 분들 위성을 어떻게 만드나요? [3] 참된깨달음2514 12/10/14 2514
149242 토익 몇문제 질문좀 드려요. [9] 피지알러1588 12/10/14 1588
149240 LOL질문입니다!(vs카타리나) [5] 야누스1771 12/10/14 1771
149239 외국인데 토익 듣기 공부를 할 있는 방법 없을까요??? e북 같은거요.. [6] netm1490 12/10/14 1490
149238 연금복권... [8] Mutalism1857 12/10/14 1857
149237 정말 좋았던 책 한권씩만 추천 부탁드려요. [20] 라리1499 12/10/14 1499
149236 도대체 멀쩡한 사람들한테 빨갱이라며 소리치는 이 노인들은 잘못된 정보를 어디서 얻는 것일까요? [7] 남자의일격1701 12/10/14 1701
149235 엔진오일교환중에 ......... [5] 피지컬보단 멘탈1715 12/10/14 1715
149234 2013년 삼성 FA선수 중에 꼭 잡아야할 선수와 실제 FA 예상은? [21] 세뚜아1599 12/10/14 1599
149233 노래방에 데려가고픈 가수. [52] 계란말이2204 12/10/14 2204
목록 이전 다음
댓글

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