개발로그필름

[백준] C | 10809 | 알파벳 찾기 본문

coding test/백준

[백준] C | 10809 | 알파벳 찾기

yuullog 2022. 11. 16. 09:00
728x90
반응형
SMALL

https://www.acmicpc.net/problem/10809

 

10809번: 알파벳 찾기

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출

www.acmicpc.net

 

알파벳의 인덱스를 어떻게 저장해야하는지 고민했다

알파벳의 아스키 코드를 아는 것이 이 문제의 핵심 포인트 같다

a의 아스키 코드는 97이라는 것을 알아두면 좋을 꺼 같다

 

 

코드 풀이

 

#include <stdio.h>

int main()
{
	char str[101] = {NULL};
	int alphabet[26];

	scanf("%s", &str);

	// alphabet 배열 안을 모두 -1로 초기화
	for (int i = 0; i < 26; i++)
		alphabet[i] = -1;

	// a부터 z까지 돌면서 
	for (int i = 'a'; i <= 'z'; i++)
	{
		// 단어의 길이가 100을 넘지 않으므로 100번 돌면서
		for (int j = 0; j < 100; j++)
		{
			// 단어 글자와 a~z중 하나와 같으면 
			if (str[j] == i)
			{
				// 같은 알파벳에서 아스키코드 a의 숫자인 97을 뺀 차이값에
				// 해당 인덱스를 저장한다.
				alphabet[i - 97] = j;
				break;
			}
		}
	}

	for (int i = 0; i < 26; i++)
	{
		printf("%d ", alphabet[i]);
	}

	printf("\n");
	return 0;


}
 
 

 

반응형
LIST

'coding test > 백준' 카테고리의 다른 글

[백준] C | 4673 | 셀프 넘버  (0) 2022.11.18
[백준] C | 1065 | 한수  (0) 2022.11.17
[백준] C | 1157 | 단어 공부  (0) 2022.11.15
[백준] C | 1152 | 단어의 개수  (0) 2022.11.14
[백준] C | 1316 | 그룹 단어 체커  (0) 2022.11.13
Comments