Hueestory

[1157] 단어 공부 (C++) 본문

PS(중단)/BOJ

[1157] 단어 공부 (C++)

히명 2024. 4. 24. 10:37
#include <iostream>
#include <algorithm>
#include <string>

using namespace std;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	string str; getline(cin, str);
	int ascii[26] = {0};
	int max = 0;
	int index = 0;

	for (int i = 0; i < str.length(); i++) {
		str[i] = toupper(str[i]);
		ascii[str[i] - 65]++;
	}

	for (int i = 0; i < 26; i++) {
		if (max < ascii[i]) {
			max = ascii[i];
			index = i;
		}
	}

	for (int i = 0; i < 26; i++) {
		if (i == index)
			continue;
		if (ascii[i] == max) {
			cout << "?";
			return 0;
		}
	}

	cout << (char)(index + 65) << endl;

	return 0;
}

 

1. A~Z가 사용된 횟수를 저장하기 위해 ascii 코드 번호를 사용한 배열 ascii를 생성

2. toupper를 사용해 string 내용을 모두 대문자로 바꾸어 준 후 ascii에 횟수 저장

3. max값을 알아내기 위한 for문 실행

4. 사용된 횟수가 동일한 알파벳이 있는 경우 "?"를 출력하기 위한 for문 실행

5. 모든 과정 종료 후 이상이 없으면 가장 많이 사용된 알파벳 출력

 

'PS(중단) > BOJ' 카테고리의 다른 글

[1000] A+B (C++)  (0) 2024.04.25
[11004] K번째 수 (C++) / 2가지 풀이  (0) 2024.04.25
[11399] ATM (C++)  (0) 2024.04.24
[1427] 소트인사이드 (C++)  (0) 2024.04.24
[1377] 버블 소트 (C++)  (0) 2024.04.23
Comments