Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- BAKA
- c
- process control
- Process Communication
- Zero That Out
- file IO
- c++
- 브런치
- IT
- 백준
- 입력 버퍼
- 시스템 프로그래밍
- 1874
- The Balance of the World
- File 조작
- Baekjoon
- 시프
- 전자책
- 5622
- Parenthesis
- LJESNJAK
- 10773
- 2941
- 바샤
- system programming
- 균형잡힌 세상
- QA
- 4949
- For Beginners
- 해바
Archives
- Today
- Total
해바
1157) 7. 문자열 : 단어 공부 본문
문제
https://www.acmicpc.net/problem/1157
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
풀이
이번 문제도 이전 문제들처럼 아스키코드를 활용하는 문제였다. 이번 파트 문제를 다 풀 때쯤엔 아스키코드표 채로 머릿속에 저장될 듯!
#include "cstdio"
#include "ctype.h"
int maxAlp(int* arr) {
int max(0);
for(int i(1); i < 27; i++) {
if(arr[i] > max) {
max = arr[i];
arr[0] = i + 64; // 최대빈도의 문자를 대문자로 변환
}
else if(arr[i] == max) arr[0] = 63; // 값이 같으면 물음표
}
return arr[0];
}
int main() {
int alp[27]{}; // alp[0] 에다 최다빈도의 문자값을 넣으려고 한칸 추가함
char str('\0');
while(str != '\n') {
scanf("%c", &str);
alp[tolower(str) - 96]++; // 대문자 걸리면 소문자로 변환하고 배열사이즈에 맞게 매핑해 저장
}
printf("%c\n", maxAlp(alp));
return 0;
}
'C, C++' 카테고리의 다른 글
2908) 7. 문자열 : 상수(FILIP) (0) | 2019.08.14 |
---|---|
1152) 7. 문자열 : 단어의 개수 (0) | 2019.08.14 |
2675) 7. 문자열 : 문자열 반복(Repeating Characters) (0) | 2019.08.12 |
10809) 7. 문자열 : 알파벳 찾기 (0) | 2019.08.12 |
11720) 7. 문자열 : 숫자의 합 (0) | 2019.08.12 |
Comments