https://www.acmicpc.net/problem/10809
이 문제도 ASCII 코드를 사용하여 해결했다.
알파벳 크기 만큼의 배열을 만들고 ASCII코드에서 소문자 알파벳이 97- 이므로
입력받은 알파벳을 정수값으로 변환 후 -97 해주면 순서대로 배열에 넣을 수 있다.
그걸 이용하면 쉽게 해결 가능!
<<코드>>
#include <iostream>
using namespace std;
int main() {
int size=101;
char word[size];
for (int i = 0; i < 101; ++i){
word[i] = ' ';
}// word배열에 입력이 없는칸에 무작위로 뭔가 있는데 거기 알파벳이 있을수도 있어서 다 ' '으로 초기화 해줌
int abc[26];
for(int i=0; i < 26; ++i){
abc[i] = -1;
}
// 아스키코드를 이용하여 단어를 문자로 입력받고 숫자로 변환
int attempt = 0;
cin >> word;
for (char ch:word){
int key = int(ch) - 97; //변환하면 알파벳을 소문자부터 순서대로 나열한것 이기 때문에 이렇게 했음
if(abc[key] == -1){
abc[key] = attempt;
}
++attempt;
}
for(int k=0; k < 26; ++k){
cout << abc[k] << ' ';
}
}
<<GitHub>>
https://github.com/J2on/BaekjoonOnlineJudge/blob/master/Code/BaekJoon_10809.cpp
< 백준 BaekJoon : 1157번 단어공부 > C++ (0) | 2021.11.21 |
---|---|
< 백준 BaekJoon : 2675번 문자열 반복 > C++ (0) | 2021.10.04 |
< 백준 BaekJoon : 11720번 숫자의 합 > C++ (0) | 2021.10.01 |
< 백준 BaekJoon : 11654번 아스키코드 > C++ (0) | 2021.10.01 |
< 백준 BaekJoon : 15596번 정수 N개의 합 > C++ (0) | 2021.10.01 |
댓글 영역