※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 1157번 문제인 단어 공부이다.
문제는 아래 링크를 확인하자.

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

 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

이 문제에서는 주어지는 각 단어에서 가장 많이 사용된 알파벳이 무엇인지를 찾아내야한다.

 

대소문자 구별을 안 하고 결국 출력할 문자가 대문자이므로, 계산을 할 때 toupper을 이용하여 대문자 기준으로 계산을 해주자.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <string>
using namespace std;

int arr[128];

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	string s; cin >> s;
	int slen = (int)s.length();

	for (int i = 0; i < slen; i++) {
		arr[toupper(s[i])]++;
	}

	char ans;
	int mxcnt = 0;

	for (int i = 0; i < 128; i++) {
		if (arr[i] < mxcnt) continue;
		if (arr[i] == mxcnt) {
			ans = '?'; continue;
		}
		ans = i;
		mxcnt = arr[i];
	}

	cout << ans;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 10998 // C++] A×B  (0) 2021.05.01
[BOJ 5717 // C++] 상근이와 친구들  (0) 2021.05.01
[BOJ 1244 // C++] 스위치 켜고 끄기  (0) 2021.05.01
[BOJ 2475 // C++] 검증수  (0) 2021.05.01
[BOJ 1236 // C++] 성 지키기  (0) 2021.05.01

+ Recent posts