문자열이 문자열 했다!!!!
소문자와 대문자에 대해 어떻게 다뤄야할지 toupper를 사용해야 할지 고민하고 있을 때 친구가 이 문제 풀었다길래 어떤식으로 풀었냐고 물어보니 만약 소문자가 나오면 아스키코드 -32를 해 풀었다고 한다.
상당히 똑똑한 친구인거 같다.
<백준1157>
#include <stdio.h>
#include <string.h>
int main(){
char a[1000001];
int b[100]={-1,}, result=0, cnt=0, t=0;
scanf("%s",a);
int len = strlen(a);
for(int i=0; i<len; i++){
if(a[i]>91){ //소문자일경우 대문자로 변환
a[i]-=32;
}
for(int j=65; j<91;j++){
if(j==a[i]){ //아스키코드와 비교 후 ++
b[j]++;
break;
}
}
}
for(int j=65; j<91;j++){
if(t<b[j]) { //가장 많은 개수 찾기
t=b[j];
result = j;
cnt=0;}
else if (t==b[j]) cnt++; //단독 우승인가 판단
}
if(cnt>0) printf("?"); //가장 많이 쓰인 알파벳이 두개 이상일 경우 ?출력
else printf("%c",result);
}
솔직히 바로 풀리진 않았고 우여곡절 말이 많았지만 내가 해냈다는 게 중요하지 중간과정이 중요한게 아니다.
사소한 문제는 넘어가기로 하자
'프로그래밍 > 백준' 카테고리의 다른 글
드디어 풀렸다 소수구하기! 1929 -C언어 (0) | 2022.09.27 |
---|---|
문자열문자열 백준 10757 큰 수 구하기 - C언어 (2) | 2022.09.22 |
6. 백준 1193 분수찾기 분명 어려운 문제가 아닌데 어렵다 -C 언어 (0) | 2022.07.26 |
5. 백준 11720 숫자의 합 (공백없이 숫자'들' 받기) -C언어 (0) | 2022.07.26 |
4. 백준 15596 정수 n개의 합 구하기 (문제를 잘 읽자,사용자정의함수배열)- c언어 (0) | 2022.07.16 |