본문 바로가기
공부

BOJ 10808

by 뜨응 2022. 1. 6.
#include<iostream>

using namespace std;

int arr[26];
string c;
int o;

int main() {
	
	cin >> c;
	for (int i = 0; ; i++) {
		if (c[i] == '\0')
			break;
		else o++;
	}

	for (int i = 0; i < o; i++) {
		if (c[i] == 'a') {
			arr[0] += 1;
		}
		if (c[i] == 'b') {
			arr[1] += 1;
		}
		if (c[i] == 'c') {
			arr[2] += 1;
		}
		if (c[i] == 'd') {
			arr[3] += 1;
		}
		if (c[i] == 'e') {
			arr[4] += 1;
		}
		if (c[i] == 'f') {
			arr[5] += 1;
		}
		if (c[i] == 'g') {
			arr[6] += 1 ;
		}
		if (c[i] == 'h') {
			arr[7] += 1;
		}
		if (c[i] == 'i') {
			arr[8] += 1;
		}
		if (c[i] == 'j') {
			arr[9] += 1;
		}
		if (c[i] == 'k') {
			arr[10] += 1;
		}
		if (c[i] == 'l') {
			arr[11] += 1;
		}
		if (c[i] == 'm') {
			arr[12] += 1;
		}
		if (c[i] == 'n') {
			arr[13] += 1;
		}
		if (c[i] == 'o') {
			arr[14] += 1;
		}
		if (c[i] == 'p') {
			arr[15] += 1;
		}
		if (c[i] == 'q') {
			arr[16] += 1;
		}
		if (c[i] == 'r') {
			arr[17] += 1;
		}
		if (c[i] == 's') {
			arr[18] += 1;
		}
		if (c[i] == 't') {
			arr[19] += 1;
		}
		if (c[i] == 'u') {
			arr[20] += 1;
		}
		if (c[i] == 'v') {
			arr[21] += 1;
		}
		if (c[i] == 'w') {
			arr[22] += 1;
		}
		if (c[i] == 'x') {
			arr[23] += 1;
		}
		if (c[i] == 'y') {
			arr[24] += 1;
		}
		if (c[i] == 'z') {
			arr[25] += 1;
		}

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

정말 무식하게 풀었다. 

풀고나서 다른 사람들이 푼 것을 봤다.

내가 보완할 수 있는 점은 

  1. string의 크기를 널값이 나오기 전까지 반복문을 돌게 하는게 아니라 c.size()해서 충분히 구할 수 있다.
  2. case를 알파벳 전체로 만들어서 푸는 게 아니라 'a'의 아스키코드를 이용해 풀 수 있다. a와 나머지 알파벳의 차이가 arr의 index가 되도록하면 쉽게 풀 수 있다. 

'A'의 아스키코드 65

'a'의 아스키코드 97

b의 아스키 코드는 98이다 

box가 입력이 되었다고하면 

0번째엔 b가 입력이 되었을것이다. 

따라서 c[0]-'a' = 1 일 것이다.

arr[c[i]-'a']하면 원하는 알파벳 순서 index의 수를 증가시킬 수 있다.

  • 한 글자 예를 들면 a 등 알파벳 한 글자를 비교할 때는 ' ' 작은 따옴표를 사용해야한다. 처음에 "a"를 비교해서 틀렸다.

'공부' 카테고리의 다른 글

BOJ 11004 해결, 시간 초과  (0) 2022.01.13
BOJ 9012 해결과 고찰.....(최악)  (0) 2022.01.12
BOJ 11365 3가지 풀이와 고찰  (0) 2022.01.10
BOJ 1475 해결과 고찰  (9) 2022.01.07
BOJ 1181, 10828 문제 해결과 고찰  (0) 2022.01.06