[백준/BOJ] 백준 10809번 : 알파벳 찾기

2020. 9. 15. 20:18알고리즘 문제풀이

www.acmicpc.net/problem/10809

 

10809번: 알파벳 찾기

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

www.acmicpc.net

vector<int> result(26, -1); 로 하여 모든 알파벳이 포함되어있지 않다고 초기화한 뒤, if (result[s[i] - 'a'] == -1) 일 때 처음 등장한 알파벳이라고 판단해 그 위치를 저장한다.

 

코드

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;

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

	string s;
	vector<int> result(26, -1); //모든 알파벳이 포함되어있지 않다고 초기화

	cin >> s;

	for (int i = 0; i < s.size(); i++)
	{
		if (result[s[i] - 'a'] == -1) //처음 등장한 알파벳일때
			result[s[i] - 'a'] = i;
	}

	for (int i = 0; i < result.size(); i++)
		cout << result[i] << " ";

	return 0;
}