문제 |
10809번: 알파벳 찾기
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출
www.acmicpc.net
코드 |
#include <iostream>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
string s;
cin >> s;
int arr[26];
fill_n(arr, 26, -1);
for (int i = 0; i < s.size(); i++) {
int idx = s[i] - 'a';
if (arr[idx] == -1) arr[idx] = i;
}
for (int i : arr) {
cout << i << ' ';
}
return 0;
}
설명 |
std::fill_n(first, size, value) 함수로 arr 배열을 -1로 채운다.
배열의 각 값은 a의 위치, b의 위치... 를 의미하기 때문에 s[i] - 'a'로 idx의 값을 구하고,
arr[idx] 에 각 알파벳이 처음 등장하는 위치를 저장한다.
'PS > BOJ' 카테고리의 다른 글
[C++] BOJ (백준) 9086 : 문자열 (0) | 2022.09.06 |
---|---|
[C++] BOJ (백준) 11718 : 그대로 출력하기 (0) | 2022.09.06 |
[C++] BOJ (백준) 2754 : 학점계산 (0) | 2022.09.05 |
[C++] BOJ (백준) 2744 : 대소문자 바꾸기 (0) | 2022.09.02 |
[C++] BOJ (백준) 2743 : 단어 길이 재기 (0) | 2022.09.02 |