티스토리 뷰
Q.1157 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
입력 :
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
출력 :
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
<소스 코드>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 |
import java.util.Scanner;
public class Prac{
public static void main(String[] argv){
Scanner sc = new Scanner(System.in);
int[] cnt = new int[26]; //알파벳 카운트를 저장할 int 배열
int max = 0; //가장 많이 나온 알파벳 수를 저장할 변수 (크기 비교에 사용)
char answer = '?'; // 정답을 저장하는 변수
String word = sc.next().toUpperCase(); //단어를 입력받고, 모든 문자를 대문자로 바꾼다.
for(int i = 0; i < word.length(); i ++){ //문자열 길이 만큼 반복
cnt[word.charAt(i)-65]++; //현재 알파벳을 알파벳카운트 배열 index에 +1 한다.
if(max < cnt[word.charAt(i)-65]){ //현재 알파벳 수가 max보다 크다면
answer = word.charAt(i); //정답에 현재 알파벳을 할당.
max = cnt[word.charAt(i)-65]; //max 변수에 현재 알파벳 수를 저장.
}
else if(max == cnt[word.charAt(i)-65]) //만약 현재 알파벳 수가 max와 같다면
answer = '?'; //정답에 '?'를 할당.
}
System.out.println(answer);
}
} |
cs |
<실행 결과>
<해법>
(1) for i = 0 부터 word의 길이까지
(2) 현재 알파벳 위치의 카운트 배열에 +1 한다.
(3) if 현재 알파벳 카운트가 max보다 크다면
(4) answer = 현재 알파벳
(5) max = 현재 알파벳의 카운트 수
(6) else if 현재 알파벳 카운트가 max와 같다면
(7) answer = '?'
위 과정을 문자열의 길이만큼 반복한다.
문제 사이트 및 참고 사이트 : https://www.acmicpc.net/problem/1157
※
본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.
※
'자료구조 및 알고리즘 > 백준' 카테고리의 다른 글
[백준]2941번, 크로아티아 알파벳 (1) | 2017.10.17 |
---|---|
[백준]1316번, 그룹 단어 체커 (1) | 2017.10.14 |
[백준]1차원 배열 사용하기 (0) | 2017.10.08 |
[백준]1152번, 단어의 개수 (0) | 2017.10.07 |
[백준]1065번 한수 (0) | 2017.10.03 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 백준 10451
- 파이썬 연산자
- 자바스크립트 자료구조
- 백준
- 버츄어박스
- 자바스크립트 그래프
- 파이썬 터틀
- 백준 1874
- 웹
- 파이썬 단계적 개선
- 백준 11501
- 파이썬 함수
- 파이썬 if문
- 파이썬 클래스
- css 박스
- 자바
- 파이썬 while
- 자료구조
- 파이썬 객체
- 파이썬 진수 변환
- 파이썬 문자열
- 명품 c++ 실습
- 파이썬 선택문
- 파이썬
- css 그리드
- css
- 파이썬 for
- 파이썬 예제
- 파이썬 리스트
- 자바 에센셜 실습문제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함