상세 컨텐츠

본문 제목

< 백준 BaekJoon : 10809번 알파벳 찾기 > C++

C++/Baekjoon

by J2on 2021. 10. 4. 19:37

본문

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

 

10809번: 알파벳 찾기

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출

www.acmicpc.net

 

이 문제도 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

 

GitHub - J2on/BaekjoonOnlineJudge: My Study

My Study. Contribute to J2on/BaekjoonOnlineJudge development by creating an account on GitHub.

github.com

 

관련글 더보기

댓글 영역