[백준] 10809번 문제 - 알파벳 찾기 - C언어(C11 C99)

2023. 11. 3. 16:49프로그래밍/C

 

이 문제를 보았을 때 알파벳 위치에다 -1을 다 넣은뒤 

 

입력한 알파벳과 비교하여 그 위치에 순서를 -1 대신 넣으려고 했다.

 

따라서 다음과 같은 코드가 짜여졌다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

typedef struct
{
	char x;
	int y;
}eng;

int main() {
	int i,j;
	int n = 97;
	char string[100] = {0,};
	scanf("%s",&string); // 97 - 122
	int len = strlen(string);
	eng arr[26];

	for (i = 0; i < 26; i++) {
		arr[i].x = n;
		arr[i].y = -1;
		n++;
	}
	
	for (i = 0; i < len; i++) {
		for (j = 0; j < 26; j++) {
			if (string[i] == arr[j].x && arr[j].y == -1 ) {
					arr[j].y = i;
			}
		}
	}

	for (i = 0; i < 26; i++) {
		printf("%d ", arr[i].y);
	}

	return 0;
}

하지만 다른사람들이 짠 코드를 보니 어처구니가 없었다.

 

https://kiffblog.tistory.com/120 다음 블로그있는 코드를 가져왔다 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    char word[100] = { 0 };
    scanf("%s", word);
    for (int i = 97; i <= 122; i++) {
        int j = 0;
        while (word[j] != 0) {
            if (word[j] == (char)i) break;
            j++;
        }
        if (word[j] == (char)i) printf("%d ", j);
        else printf("-1 ");
    }
}

이렇게 간단하게 짤 수 있다.

 

난 진짜 바보다.