반응형
#INFO
난이도 : BRONZE2
알고리즘 유형 : 자료구조
문제 출처 : https://www.acmicpc.net/problem/10809
#SOLVE
알파벳의 위치를 저장할 alpha[26] 배열을 선언해 주고, fill_n 메서드로 모든 값을 -1로 초기화한다.
int alpha[26];
fill_n(alpha ,26 ,-1);
문자열을 입력받은 뒤 문자열의 길이만큼 탐색하여 만약 해당 알파벳의 alpha 배열 값이 -1 이라면 ( -1이 아니면 처음 등장한 위치가 아니라는 뜻이니) 현제 인덱스 값을 alpha 배열에 초기화 시켜준다.
for (int i = 0; i < str.length(); i++) {
if (alpha[str[i] - 97] == -1) {
alpha[str[i] - 97] = i;
}
}
#CODE
#include <iostream>
#include <string>
using namespace std;
int alpha[26];
int main()
{
fill_n(alpha ,26 ,-1);
string str;
cin >> str;
for (int i = 0; i < str.length(); i++) {
if (alpha[str[i] - 97] == -1) {
alpha[str[i] - 97] = i;
}
}
for (int i = 0; i < 26; i++) {
cout << alpha[i] << " ";
}
return 0;
}
반응형
'Archive > ProblemSolving' 카테고리의 다른 글
[BOJ] 10824 "네 수" 문제 풀이 & 소스 코드 with C/C++ (0) | 2021.09.02 |
---|---|
[BOJ] 11655 "ROT13" 문제 풀이 & 소스 코드 with C/C++ (0) | 2021.08.30 |
[BOJ] 10808 "알파벳 개수" 문제 풀이 & 소스 코드 with C/C++ (0) | 2021.08.24 |
[BOJ] 11053 "가장 긴 증가하는 부분 수열" 문제 풀이 & 소스 코드 with C/C++ (0) | 2021.08.18 |
[BOJ] 11722 "가장 긴 감소하는 부분 수열" 문제 풀이 & 소스 코드 with C/C++ (0) | 2021.08.16 |