바야바네 움집

[10809] 문자열 : 알파벳 찾기 본문

🧶 알고리즘/🎲백준BOJ

[10809] 문자열 : 알파벳 찾기

친절한 바야바 2021. 11. 23. 21:09

📌풀이

해시맵을 사용해 빠르게 값을 찾을 수 있도록 했다. 알파벳이 등장한 맨 처음 위치를 저장해야 하는데 문자열을 앞에서부터 탐색하면 가장 마지막에 나온 위치를 저장해서 거꾸로 탐색했다.

 

📌코드

#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;

int main()
{
    string str;
    unordered_map<char, int> alphabet;

    getline(cin, str);
    for(int i=str.length() - 1; i>-1; i--)
        alphabet[str[i]] = i;

    for(int i=97; i<123; i++)
    {
        if(alphabet.find(i) != alphabet.end())
            printf("%d ", alphabet[i]);
        else
            printf("-1 ");
    }

    return 0;
}

'🧶 알고리즘 > 🎲백준BOJ' 카테고리의 다른 글

[1463][C++] 1로 만들기  (0) 2022.04.15
[1157] 문자열 : 단어 공부  (0) 2021.11.23
[11654] 문자열 : 아스키 코드  (0) 2021.11.23
[6588번] 골드바흐의 추측  (0) 2021.08.31
[1978번] 소수 찾기  (0) 2021.08.31
Comments