|
아주 기초적인 질문이라 대충 알고리즘만 적습니다.
외냐하면 제가 컴파일러가 없어서리.... <억시로 쪽팔려...>
문제의 문자열 배열을 오름차순으로 정열 합니다.
그러면
------- ------- ------- ------- ------- -------
문자열1 문자열1 문자열2 문자열2 문자열2 문자열3
------- ------- ------- ------- ------- -------
와 같이 문자열이 정열 됩니다.
제일 앞에 의미 없는 문자열을 삽입합니다.
------- ------- ------- ------- ------- -------
?????? 문자열1 문자열2 문자열2 문자열2 문자열3
------- ------- ------- ------- ------- -------
이제 루프를 돌면서 자기 앞의 문자열과 다른 문자열만 추출하면 됩니다.
for (i=1; i < 10; i++)
if (!strcmp(str[i-1],str[i]))
printf("%s",str[i]);
해답이 너무 난해 한가요?
그래도 차근 차근 살펴 보시기 바랍니다.
알고리즘은 모르면 어렵지만 알고나면 별거 아닙니다.
그럼
이용태 님이 쓰신 글 :
: 제가 예를 잘못 들었나 봅니다.
:
: 문자 배열이 아니고요... 문자열 배열입니다.
:
:
: 문자열1 = "우리나라"
: 문자열2 = "대한민국"
: 문자열3 = "단일민족"
:
: ------- ------- ------- ------- ------- -------
: 문자열1 문자열2 문자열1 문자열3 문자열2 문자열2
: ------- ------- ------- ------- ------- -------
:
: 이것을 중복된 값을 제외하여 다음과 같이 만들고 싶습니다.
:
: ------- ------- -------
: 문자열1 문자열2 문자열3
: ------- ------- -------
:
: 방법 아시는 분 알려주십시요...
:
:
: 김상면 님이 쓰신 글 :
: : 아주 기초적인 질문이라 대충 알고리즘만 적습니다.
: :
: : char src[9] = "aaabbacbc";
: : int dst[9] = {0,};
: : int i = 0;
: :
: : while (i<10)
: : dst[src[i++] - 'a']++;
: :
: : i = 0;
: : while (i < 10)
: : { if (dst[i])
: : cout << char(i + 'a');
: : i++;
: : }
: :
: : 실행 파일을 만들려면 좀 손을 봐야 하지만 알고리즘을 이해하는데는 문제가 없으리라 생각합니다.
: : 그럼
: :
: :
: : 이용태 님이 쓰신 글 :
: : : 다음과 같은 배열이 있습니다.
: : :
: : : char a[9];
: : : --- --- --- --- --- --- --- --- ---
: : : a a a b b a c b c
: : : --- --- --- --- --- --- --- --- ---
: : :
: : : 이 배열에서 중복된 값을 제외한 새로운 배열을 만들고 싶습니다.
: : :
: : : 즉.. 요렇게 말이죠..
: : : --- --- ---
: : : a b c
: : : --- --- ---
: : :
: : : 머리를 계속 굴려보는데... 퍼뜩이는 아이디어가 떠오르지 않습니다...;;;
: : :
: : : 아시는 분... 답변 부탁드립니다...
|