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 |
Tags
- 2589
- 알고리즘
- 2638
- Servlet
- 백준
- 완도산회
- 문자열 압축
- 2839
- 2020 KAKAO BLIND
- Spring
- 서블릿
- dp
- 양꼬치
- 동적 프로그래밍
- 설탕 배달
- mvc
- 맛집 투어
- 스프링 MVC
- 1로 만들기
- 프로그래머스
- 쓰레드 풀
- BFS
- 다이나믹 프로그래밍
- 맛집
- HTTP API
- 호유동
- 고모네 콩탕
- 투어
- 스프링
- 포두부 보쌈
Archives
- Today
- Total
프로그래밍 공방
[백준] 1157번 : 단어 공부 본문
문제 |
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는
프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
입력 |
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지
않는다.
출력 |
(첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이
여러 개 존재하는 경우에는 ? 를 출력한다.)
문제해결방법 |
1. 길이가 26인 배열을 선언하고 0으로 초기화 해준다. (A~Z = 26개)
2. 알파벳의 아스키코드 값을 이용해서 앞서 선언한 배열에 각 알파벳이 몇 번 나왔는지 넣어준다.
3. 초기 최대값을 0으로 두고 배열을 돌며 최대값보다 크면 최대값에는 해당하는 배열의 값을
넣어주고 인덱스 값 + 65 를 통해 char형태의 변수에 알파벳을 넣어준다. 만약 최대값과 같은
배열 값이 있다면 변수에는 ?를 넣어준다.
코드 |
#include<iostream> #include<string> using namespace std; int main() { string s; int arr[26] = { 0 }; int max = 0; char answer; getline(cin, s); // 아스키 코드를 이용해서 배열에 각 알파벳이 몇 번 나왔는지 넣어준다. for (int i = 0; i < s.length(); i++) { if (s[i] >= 65 && s[i] <= 90) arr[s[i] - 65] += 1; else if (s[i] >= 97 && s[i] <= 122) arr[s[i] - 97] += 1; } // 해결방법 3에 해당하는 코드 for (int i = 0; i < 26; i++) { if (arr[i] > max) { answer = i + 65; max = arr[i]; } else if (arr[i] == max) answer = '?'; } cout << answer << "\n"; return 0; }
'개발 > 문제해결' 카테고리의 다른 글
[프로그래머스] 2020 KAKAO BLIND : 문자열 압축 (0) | 2020.11.01 |
---|---|
[백준] 1463번 : 1로 만들기 (0) | 2020.11.01 |
[백준] 2839번 : 설탕 배달 (0) | 2020.10.31 |
[백준] 2589번 : 보물섬 (0) | 2020.10.29 |
[백준] 2638번 : 치즈 (0) | 2020.10.28 |