문제

https://www.acmicpc.net/problem/10809
10809번: 알파벳 찾기
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출
www.acmicpc.net
코드
way1(내 풀이)
#include <iostream>
#include <string>
using namespace std;
int main(){
string s;
cin >> s;
int alphabet[26];
for(int i=0; i<26; i++){
alphabet[i] = -1;
}
for(int i=0; i<s.length(); i++){
if(alphabet[s[i]-'a'] == -1){
alphabet[s[i]-'a'] = i;
}
}
for(int a : alphabet){
cout << a << ' ';
}
return 0;
}
way2
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
string alphabet = "abcdefghijklmnopqrstuvwxyz";
cin >> s;
for (int i = 0; i < alphabet.length(); i++)
{
cout << (int)s.find(alphabet[i]) << " ";
}
return 0;
}
정리
s.find(찾고싶은 문자(열)) : 찾고싶은 문자(열)의 첫번째 index값을 return하고 없을 경우에는 string::npos을 return 한다. string::npos를 int로 변환했을 때 대응되는 값은 -1이다.
참조
'Beakjoon > string' 카테고리의 다른 글
| [백준] 9417번 최대 GCD (C++) - substr(), find()를 활용해서 특정 문자 기준으로 자르기, Euclidean algorithm (0) | 2022.09.15 |
|---|---|
| [백준] 1551번 수열의 변화 (C++) - stringstream, split (0) | 2022.06.07 |
| [백준] 2998번 8진수 (C++) - str.insert(), str.substr() (0) | 2022.04.27 |
| [백준] 2857번 FBI (C++) - str.find() (0) | 2022.03.05 |
| [백준] 11656번 접미사 배열 (C++) - str.substr() (0) | 2022.03.05 |