코딩/백준

[백준 1157번/문자열] 단어공부 - Java

조밈밍 2022. 3. 6. 12:14

 

 

해결

: 입력받은 문자열의 길이만큼 반복문을 돌며 사용된 알파벳을 카운트 시킨다

 + 아스키 코드 이용

=> A를 카운트 한다고 하면 배열에 arr['A'-65] 하면 A의 아스키코드는 65이므로 arr[0]에 카운트 되는것

 

import java.util.Scanner;

public class Main {
	// 단어공부
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int[] arr = new int[26]; // 알파벳 공간
		String s = sc.next();
		
		for(int i=0; i<s.length(); i++) {
			if(s.charAt(i)>=65 && s.charAt(i)<=90) {	// 대문자
				arr[s.charAt(i)-65]++;
			}else {
				arr[s.charAt(i)-97]++; // 소문자
			}
		}
		
		int max = -1;
		char answer = '?';
		
		for(int j=0; j<arr.length; j++) {
			if(max<arr[j]) {
				max = arr[j];
				answer = (char)(j+65);	// 대문자로 출력
			}else if(max == arr[j]) {
				answer = '?';
			}
		}
		System.out.println(answer);
	}
}

 

공부

영어를 앞으로 밀거나, 비교하거나, 바꾸는 경우 => '아스키코드' 사용이 편리