-
[1157번] 단어공부 -Java알고리즘 연습 2021. 11. 11. 20:56
https://www.acmicpc.net/problem/1157
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
1. 배운점
- 아스키코드를 활용하면 문자열을 좀 더 효율적으로 다룰 수 있다.
2. 개선할 점
- 문자열 다루는 문제들 더 풀어보기
3. 궁금한 점
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { // import java.io.BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 길이 26인 배열 생성 int [] countArr = new int [26]; // String형으로 문자 입력받기 String word = br.readLine(); // 반복문 & 배열 활용해서 단어 수 세기 for(int i = 0; i < word.length(); i++) { // 대문자인 경우 if(65 <= word.charAt(i) && word.charAt(i) <= 90) { countArr[word.charAt(i)-65]++; } // 소문자인 경우 if(97 <= word.charAt(i) && word.charAt(i) <= 122) { countArr[word.charAt(i)-97]++; } } // 결과 출력 char result = sortArray(countArr); System.out.println(result); } // 가장 많이 사용한 문자를 돌려주는 메서드 private static char sortArray(int[] arr) { char result = 0; int max = 0; for(int i = 0; i < arr.length; i++) { if(arr[i] > max) { max = arr[i]; result = (char)(i + 65); } else if(arr[i] == max) { result = '?'; } } return result; } }
'알고리즘 연습' 카테고리의 다른 글
[2869번] 달팽이는 올라가고 싶다 - Java (0) 2021.11.11 [2839번] 설탕배달 - Java (0) 2021.11.11 [1316번] 그룹 단어 체커 - Java (0) 2021.11.09 [4153번] 직각삼각형 - Java (0) 2021.11.09 [3009번] 네 번째 점 - Java (0) 2021.11.09