상세 컨텐츠

본문 제목

백준 10809번 알파벳 찾기

C++

by 빙하둘리 2022. 9. 4. 20:28

본문

728x90

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

cin과 getline은 뒤에 널문자를 붙여준다. 그래서 cin이나 getline으로 100글자를 입력 받고 싶으면 널 문자까지 101을 해줘야 한다.

 

알파벳 찾기 코드는 다음과 같다.

#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;


int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(NULL);

	char word[101];
	int alph[26] = { 0, }; // 26개의 알파벳 수
	cin >> word;

	int len = strlen(word);
	//단어가 처음 등장하는 위치

	for (int i = 0; i < 26; i++)
	{
		alph[i] = -1;
	}
	for (int i = 0; i < len; i++)
	{
		char c=word[i];
		int n;
		n = (int)c; //97~122
		//cout << "알파벳은 " << c << "\n";
		//cout << "인덱스는" << n - 97 << "\n";
		if ((96 < n && n < 123) && (alph[n-97] == -1)) {
			alph[n - 97] = i; //a가 0번째
			//cout << "배열에는 " << i << "가 저장됩니다.\n";
		}
	}

	for (int i = 0; i < 26; i++)
	{
		if (i < 25)
			cout << alph[i] << " ";
		else
			cout << alph[i];
	}

	return 0;
}
728x90

'C++' 카테고리의 다른 글

yes를 입력하면 종료하는 프로그램  (0) 2023.02.18
문자열 비교 compare strcmp  (0) 2023.02.18

관련글 더보기

댓글 영역