알고리즘 연습

[백준_BOJ] 1157. 단어공부 _ JAVA 문제풀이

코딩하는 너구리 2019. 10. 16. 10:18
반응형

문제

 

 

 

 

 

 

풀이

 

 

먼저 각각의 알파벳이 나온 빈도수를 체크하기 위해 alpha[ ] 배열을 만들어주었습니다.

입력받은 str을 한 글자씩 잘라 보면서 alpha 배열에 카운트를 1씩 증가시켜주어 몇 번 등장했는지 알 수 있도록 해주었습니다.

 

카운팅을 완료한 이후 max와 max_idx를 만들어 max는 가장 높은 빈도수, idx는 max값일 때의 문자를 기록하기 위해

두 변수를 사용했습니다.

 

추가적으로 max값이 똑같을 경우,  ? 를 출력해주어야 하기 때문에 이를 구분하기 위한 flag 변수를 만들었습니다.

새로운 max값이 등장할 때 if문 안에서 flag를 false로 초기화해주었고,

만약 똑같은 max 값이 발생한다면 flag를 true로 바꿔 그 경우에는 결과값? 를 출력해주었습니다.

 

 

 

 

 

코드

 

 

 

 

출처

 

 

https://www.acmicpc.net/problem/1157

 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

 

 

 

 

반응형