๐Ÿ“ Coding Test Study/Algorithm Problem

[C++][Baekjoon][๋ฌธ์ž์—ด] 10808๋ฒˆ ์•ŒํŒŒ๋ฒณ ๊ฐœ์ˆ˜

ibelieveinme 2024. 2. 3. 19:13
728x90
  • ๋ฌธ์ œ
 

10808๋ฒˆ: ์•ŒํŒŒ๋ฒณ ๊ฐœ์ˆ˜

๋‹จ์–ด์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” a์˜ ๊ฐœ์ˆ˜, b์˜ ๊ฐœ์ˆ˜, …, z์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด S๊ฐ€ ์ฃผ์–ด์กŒ๋‹ค. ๊ฐ ์•ŒํŒŒ๋ฒณ์ด ๋‹จ์–ด์— ๋ช‡ ๊ฐœ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ๊ตฌํ•˜๋ผ.

๋‹จ์–ด์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” a์˜ ๊ฐœ์ˆ˜, b์˜ ๊ฐœ์ˆ˜, …, z์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.

 

 
  • ํ’€์ด

์•ŒํŒŒ๋ฒณ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ด 26๊ฐœ์ด๊ณ , ๋ฌธ์ž์—ด์€ ์•„์Šคํ‚ค ์ฝ”๋“œ๋กœ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ index ์— ๋”ฐ๋ผ ์ •์ˆ˜๊ฐ’์„ ๊ฐ–๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

1) ๋‹จ์–ด S ์˜ ์•ŒํŒŒ๋ฒณ ๊ฐœ์ˆ˜๋ฅผ count ํ•  ๋ฒกํ„ฐ๋ฅผ ๋งŒ๋“ ๋‹ค.

vector<int> alphabets(26, 0);

 

2) ์•„์Šคํ‚ค๊ฐ’์„ ์‚ฌ์šฉํ•ด์„œ ์•ŒํŒŒ๋ฒณ index ๋ฅผ ๊ตฌํ•ด์„œ 1)์—์„œ ๋งŒ๋“  ๋ฒกํ„ฐ์— ์นด์šดํŠธํ•œ๋‹ค.

int index = (int)alphabet[i] - (int)'a';

 

a ๋ฅผ ์•„์Šคํ‚ค ์ฝ”๋“œ ๊ฐ’์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด 97 ์ด๋‹ค.

์ฆ‰, alphabet[i] ๊ฐ’์ด a ๋ผ๋ฉด 97์„ ๋นผ๋ฉด 0์ด ๋œ๋‹ค.

 b๋Š” 1, c๋Š” 2, d๋Š” 3, ...

 

  • ๊ธฐ์–ตํ•  ๊ฒƒ

1) ๋ฒกํ„ฐ ํฌ๊ธฐ ์ƒ์„ฑ ๋ฐ ์ดˆ๊ธฐํ™”

vector<int> alphabets(26, 0);

 

2) a ์˜ ์•„์Šคํ‚ค๊ฐ’

97

 

  • ์ฝ”๋“œ
#include <iostream>
#include <vector>
using namespace std;


int main() {
	vector<int> alphabets(26, 0);
	string alphabet = "";

	cin >> alphabet;

	for (int i = 0; i < alphabet.length(); i++) {
		int index = (int)alphabet[i] - (int)'a';
		alphabets[index] += 1;
	}

	for (int i = 0; i < alphabets.size(); i++) {
		cout << alphabets[i] << " ";
	}

	return 0;
}

 

 C++ ๋žœ๋งŒ์— ํ‘ธ๋‹ˆ๊นŒ ๊ตฌ๋ฌธ์ด ํ—ท๊ฐˆ๋ฆฐ๋‹ค ํ—ˆํ—ˆ

728x90