중복 없는 문자만 출력

임홍원·2021년 4월 29일
0

배열에 10개의 문자를 입력 받아서 저장하고 (동일 문자가 반복 입력 될 수 있음), 저장된 문자 중 중복이 없는 문자만 출력 하시오.

입력 예시

abcabdefdg


출력 예시

c e f g


코드

#include<stdio.h>

int main() {
	char c[10];
	char com[10] = {0,};
	char result[10] = { 0, };
	for (int i = 0; i < 10; i++) {
		scanf("%c", &c[i]);
	}
	int k = 0;
	for (int i = 0; i < 10; i++) {
		for (int j = i+1; j < 10; j++) {
			if (c[i] == c[j]) {
				com[i] = c[i];
				c[j] = 0;
			}
		}
		if (com[i] == c[i]) {
			c[i] = 0;
		}
		
		if (c[i] != 0) {
			result[k++] = c[i];
		}
	}
	for (int i = 0; i < k; i++) {
		printf(" %c", result[i]);
	}

How to Solve & Think

  1. 원본 배열과 비교 후 중복된 문자가 있는 배열 생성, 원본 배열의 값을 다른 값으로 바꾸어줌 (별로 좋지 않은 방법인 것 같다.)

  2. 바뀌지 않은 값이 있을 수 있으므로 중복된 문자가 있는 배열과 원본 배열 비교 후 중복되는 값이 있으면 다른 값으로 바꾸어줌.

  3. 바꾼 값을 0 이라 가정했을때, 0과 같은 값이 아니면 result 배열에 저장 후 출력

비교적 간단한 문제이지만 중복을 생각하니 꽤나 애를먹었다.😥

0개의 댓글