게으른카르

백준 1157 단어 공부 C++

C
2023. 4. 5. 10:03

백준 1157 단어 공부

백준 1157번 "단어 공부" 문제의 자세한 내용은 글 하단의 문제 링크를 참고하세요.

1157 문제에 주어지는 입력 및 예시

입력: 

Mississipi

출력:

?

코드

백준 1157번 "단어 공부" 문제의 코드입니다.

1번 코드(stack 사용.)

#include <bits/stdc++.h>
using namespace std;
int az[26];
int main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	stack<int> ff;
	int max=-1;
	string a;
	cin>>a;
	for(int i=0;i<a.length();i++){
		if(a[i]>='a')
			az[a[i]-'a']++;	
		else
			az[a[i]-'A']++;		
	}
	for(int i=0;i<26;i++){
		if(max<az[i]){
			max=az[i];
			ff.push(i);		
		}
		else if(max==az[i]&&!ff.empty()){
			ff.pop();
		}	
	}
	if(ff.empty())
		cout<<"?";
	else
		cout<<char('A'+ff.top());
	return 0;
}

2번 코드.

#include <bits/stdc++.h>
using namespace std;
int az[26];
int main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int max=-1;
	int n,flag=0;
	string a;
	cin>>a;
	n=a.length();
	for(int i=0;i<n;i++){
		if(a[i]>='a')
			az[a[i]-'a']++;	
		else
			az[a[i]-'A']++;		
	}
	for(int i=0;i<26;i++){
		if(max<az[i]){
			max=az[i];
			flag=i;		
		}
		else if(max==az[i]){
			flag=-1;
		}	
	}
	if(flag==-1)
		cout<<"?";
	else
		cout<<char('A'+flag);
	return 0;
}

실행

위의 코드를 예제의 입력을 넣어 실행했을 때의 결과입니다.

 

반응형

'C' 카테고리의 다른 글

백준 2178 미로 탐색 C++  (0) 2023.04.05
백준 2475 검증수 C++  (0) 2023.04.05
백준 2941 크로아티아 알파벳 C++  (0) 2023.04.05
백준 4375 1 C++  (0) 2023.04.04
백준 1629 곱셈 C++  (0) 2023.04.04

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band