프로그래밍

 3198, 1/160 회원가입  로그인  
   ERIC910903
   http://blog.naver.com/eric910903
   학교 C++ 언어 LAB중에 안풀이는 한곳!!! 도와주세요.

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=2955 [복사]


제가 학교에서 LAB의 어려운 문제를 받았습니다.

예를들어 프로그램을 6가지를 짜야 된다면, 4가지는 가능하는데.. 딱 중요한 1가지가 풀리지가 않습니다.

그것이 무엇이면요..


ARRAY에 만약 (램덤)
6 5 4 6 7 8 9
으로 넣는다면..
(
예를들어.

const int size=30;
int number[size];

For(int i=0; i < 10; i++)
{
Cin >> number[i];
}

)

Array 이에는 6 5 4 6 7 8 9 이 번호가... 순서대로 저장이 되어 있습니다.

중요한것은 여기가까지는 제가 이해를 하겠는데..

중요한것은 어떻게 그것을 세는지 모르겠습니다.
예를들어

6의 숫자는 Array 2번이 들어 갔습니다(6이라는 숫자는 반복이 2번이 되었으니깐... 2번). 그것을 프로그램이 찾아서 2의 숫자를 내야 합니다.
다른 숫자들은 뭐 반복되는것이 없으니... 1번입니다.

어떻게 이게 가능한가요?
(보통 일주일 정도 주는.. 학교가 다음주 휴업이니 뭐니 아라고 해서.. 2일 정도 없습니다.. 월요일에 내야 합니다)

참!

저는 코드를 가르켜 달라는것이 아니라..

어떤 방법이나.. 팁을 원합니다. (예를들어.. Array에 Multi-Dimension이라던가...방법을..)
(저도 잘 못하는 프로그래머이지만, 제가 직접 생각으로 프로그램을 짜고 싶습니다)

도와주세요....ㅜ_ㅜ

  Hit : 4515     Date : 2011/04/17 01:47



    
clockmaker 일단 질문이 하나 있는데요.. number 배열은 30개나 선언하셨는데 입력은 10번밖에 안 받는 이유가 뭔가요??

구현은.. 입력 받는 숫자의 범위를 알고 있는 건가요?
입력받는 숫자의 최대값이 N이라고 가정할게요. 그럼 iter[N] 배열을 만드세요.
이 배열 각각이 지정하는 것은, 어떤 숫자가 몇 번 들어있냐..입니다.
글쓴분 입장에서는 6이 2번이었으니 iter[6] 가 2가 되는 상황인 거죠.
맨 처음, 아직 숫자를 세 보기 전엔 전부 0개씩 있겠죠? 아직 안 셌으니까요.
그러니 모든 iter[N]은 0으로 초기화 하시고요, 이제 number배열에 있는 숫자를 하나씩 읽고, 각 숫자에 맞는 iter[]을 1씩 증가시키는 루프를 만들어서 돌리시면 루프가 끝난 뒤에는 각각의 숫자에 대한 iter[]가 각각 넣어준 횟수만큼 증가되어 있겠죠?
일단 저는 이 정도밖에 생각이 안 나는데.. N이 커질수록 코드가 바보같아 보인다는 단점이 있습니다ㅋㅋ;;
물론, 숫자 6만 세는 거라면, 그냥 iter라는 int형 변수를 선언하셔서 number가 6일 때마다 1씩 증가시켜주시면 됩니다 ㅇ_ㅇ
2011/04/17  
clockmaker 아 iter 라는 이름은 iteration의 줄임말입니다 ㅇ_ㅇ 2011/04/17  
ERIC910903 감사합니다..
일단, 방법은 알았네요..
제가 한번 해보겠습니다..
답변 감사드립니다.
2011/04/17