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 |
Tags
- 시스템프로그래밍
- concurrency control
- 온디바이스AI
- SQL
- 쉬운 코드
- 데이터베이스
- 네트워크
- 개발남노씨
- vite
- 코딩테스트 [ ALL IN ONE ]
- B tree 데이터삽입
- CPU 스케줄링
- 김영한
- SDK
- 백엔드
- 프로세스 주소 공간
- Git
- 인터럽트
- recoverability
- 코딩애플
- 운영체제
- Extendable hashing
- 트랜잭션
- 시그널 핸들러
- 쉬운코드
- 운영체제와 정보기술의 원리
- BreadcrumbsComputer-Networking_A-Top-Down-Approach
- 커널 동기화
- 반효경
- 갤럭시 S24
Archives
- Today
- Total
티끌모아 태산
1157: 단어 공부 본문
728x90
https://www.acmicpc.net/problem/1157
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
설명
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
핵심 아이디어
- 주어진 문자의 알파벳 빈도수를 0~25 공간에 저장한다. 즉 카운팅 배열! -> ord(), char(), lower(), upper()
- 마지막으로 해당 알파벳이 유일한 최다 빈도수인지 확인한 후 결과를 출력한다.
코드 구현
Python
s = input().lower() # 대소문자 구분 X, 출력만 대문자로!
# 우선 각 문자를 중복 없이 따로 추출
s_list = list(set(s))
# print(s_list) ['a', 'z']
# 각 문자의 빈도를 담을 배열
cnt = []
for i in s_list:
num = s.count(i)
cnt.append(num)
# print(cnt) [1, 2]
# 그리고 이제 최단 빈도수인지 확인
if cnt.count(max(cnt)) > 1:
print("?")
else:
print(s_list[cnt.index(max(cnt))].upper())
C++
#include <iostream>
#include <string>
using namespace std;
// 문제의 핵심은 카운팅 배열 사용
string s;
int counting_arr[26], cnt = 0;
// 아스키코드: 대문자 65~90 소문자 97~122
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
// 문자 입력받기
cin >> s;
// 빈도수 체킹
for (int i = 0; i < s.length(); i++) {
if (s[i] < 97) {
counting_arr[s[i] - 65]++; // 대문자
}
else {
counting_arr[s[i] - 97]++; // 소문자
}
}
int max = 0, max_index = 0;
for (int i = 0; i < 26; i++) {
if (max < counting_arr[i]) {
max = counting_arr[i];
max_index = i;
}
}
// 가장 많이 사용된 알파벳이 여러개인가?
for (int i = 0; i < 26; i++) {
if (max == counting_arr[i]) cnt++;
}
// 여러개라면 ?
if (cnt > 1) cout << "?";
else cout << (char)(max_index + 65); // 대문자 출력
}
728x90
'백준 문제 > 문자열,누적합,구현' 카테고리의 다른 글
1236: 성지키기 (0) | 2024.03.27 |
---|---|
[백 준/구현] 9996: 한국이 그리울 땐 서버에 접속하지 (0) | 2024.02.15 |
[백 준/구현] 1620: 나는야 포켓몬 마스터 이다솜 (2) | 2024.01.03 |