πŸ’  Cpp/[BOJ] λ‹¨κ³„λ³„λ‘œ 풀어보기

[BOJ][C++] λ°±μ€€ 10809번: μ•ŒνŒŒλ²³ μ°ΎκΈ°

선달 2021. 10. 3. 03:09
λ°˜μ‘ν˜•

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

 

10809번: μ•ŒνŒŒλ²³ μ°ΎκΈ°

각각의 μ•ŒνŒŒλ²³μ— λŒ€ν•΄μ„œ, aκ°€ 처음 λ“±μž₯ν•˜λŠ” μœ„μΉ˜, bκ°€ 처음 λ“±μž₯ν•˜λŠ” μœ„μΉ˜, ... zκ°€ 처음 λ“±μž₯ν•˜λŠ” μœ„μΉ˜λ₯Ό 곡백으둜 κ΅¬λΆ„ν•΄μ„œ 좜λ ₯ν•œλ‹€. λ§Œμ•½, μ–΄λ–€ μ•ŒνŒŒλ²³μ΄ 단어에 ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•Šλ‹€λ©΄ -1을 좜

www.acmicpc.net

 

문제

μ•ŒνŒŒλ²³ μ†Œλ¬Έμžλ‘œλ§Œ 이루어진 단어 Sκ°€ 주어진닀. 각각의 μ•ŒνŒŒλ²³μ— λŒ€ν•΄μ„œ, 단어에 ν¬ν•¨λ˜μ–΄ μžˆλŠ” κ²½μš°μ—λŠ” 처음 λ“±μž₯ν•˜λŠ” μœ„μΉ˜λ₯Ό, ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•Šμ€ κ²½μš°μ—λŠ” -1을 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫째 쀄에 단어 Sκ°€ 주어진닀. λ‹¨μ–΄μ˜ κΈΈμ΄λŠ” 100을 λ„˜μ§€ μ•ŠμœΌλ©°, μ•ŒνŒŒλ²³ μ†Œλ¬Έμžλ‘œλ§Œ 이루어져 μžˆλ‹€.

좜λ ₯

각각의 μ•ŒνŒŒλ²³μ— λŒ€ν•΄μ„œ, aκ°€ 처음 λ“±μž₯ν•˜λŠ” μœ„μΉ˜, bκ°€ 처음 λ“±μž₯ν•˜λŠ” μœ„μΉ˜, ... zκ°€ 처음 λ“±μž₯ν•˜λŠ” μœ„μΉ˜λ₯Ό 곡백으둜 κ΅¬λΆ„ν•΄μ„œ 좜λ ₯ν•œλ‹€.

λ§Œμ•½, μ–΄λ–€ μ•ŒνŒŒλ²³μ΄ 단어에 ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•Šλ‹€λ©΄ -1을 좜λ ₯ν•œλ‹€. λ‹¨μ–΄μ˜ 첫 번째 κΈ€μžλŠ” 0번째 μœ„μΉ˜μ΄κ³ , 두 번째 κΈ€μžλŠ” 1번째 μœ„μΉ˜μ΄λ‹€.

 

풀이

#include <iostream>

using namespace std;

int main () {
    
    //μ„ΈνŒ…
    int alphabet[26];
    for(int i=0; i<26; i++)
        alphabet[i] = -1;
    
    //μž…λ ₯
    string s;
    cin >> s;
    
    //계산
    for(int i=s.length()-1; i>=0; i--){
        alphabet[(int)s[i]-97] = i;
    }
    
    //좜λ ₯
    for(int i=0; i<26; i++){
        cout << alphabet[i] << " ";
    }
    
    return 0;
}
λ°˜μ‘ν˜•