BEAKJOON

백준(10809번 알파벳 찾기)풀이 C++

Shin_jisoo 2021. 1. 9. 15:36
728x90

www.acmicpc.net/problem/10809

 

10809번: 알파벳 찾기

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

www.acmicpc.net

1) 주석 없는 VERSION

#include <stdio.h>
#include <iostream>
using namespace std;

int main() {
	int n, array[26];
	string str;

	cin >> str;

	for (int i = 0;i < 26;i++) {
		array[i] = -1;
	}

	for (int i = 0;i < str.length();i++) {
		n = str[i] - 97;
		if (array[n] == -1) {
			array[n] = i;
		}
	}

	for (int i = 0;i < 26;i++) {
		cout << array[i] << ' ';
	}

}

 

2) 주석 있는 VERSION

#include <stdio.h>
#include <iostream>
using namespace std;

int main() {
	int n, array[26];
	string str;

	cin >> str; // 문자열 입력 받기

	for (int i = 0;i < 26;i++) {
		array[i] = -1; // 알파벳 인덱스에 모두 -1 넣어주기
	}

	for (int i = 0;i < str.length();i++) {
		n = str[i] - 97; // 아스키 코드 값 97을 빼주고 인덱스 값으로 사용
		if (array[n] == -1) {
			array[n] = i; // 순서 넣어주기
		}
	}

	for (int i = 0;i < 26;i++) {
		cout << array[i] << ' '; // 공백과 함께 출력
	}

}

 

❌주의 사항❌

아스키 코드 값을 숫자로 사용하기 위해서는 97 빼주기