본문 바로가기
백준 문제풀이

[백준]1157번 문제 풀이

by Dodledd 2024. 1. 29.

문제 : 

===========================================================================================

 

 

힌트 : 유니코드를 활용하여 풀었습니다, 알파뱃 개수만큼 int형 배열을 사용해서 중복 카운터로 사용했습니다.

 

 

============================================================================================

 

문제 풀이 : 주석 참고해서 보시면 됩니다 !

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 str = sc.next();
		int count = 0; // 중복 카운트한 배열의 최고값을 저장하기 위한 변수
		char ch = ' '; 
		
		//입력문 길이만큼 반복, 소문자 범위일 때 반복문
		for(int i = 0; i<str.length(); i++) {
			if(str.charAt(i)>='a' && str.charAt(i)<='z') {
				arr[str.charAt(i)-97]++; //a의 유니코드는 97이니 -97하면 0
	
			}
			//대문자
			else if(str.charAt(i)>='A' && str.charAt(i)<='Z')
				arr[str.charAt(i)-'A']++; //소문자와 마찬가지, 유니코드나 문자를 빼줘도 된다.
		}

		//제일 많은 알파벳을 대문자로 바꾸기 위한 for문
		for(int i = 0; i<arr.length; i++) {
			if(count<arr[i]) {
				count = arr[i];
				ch = (char)(i+65); //char로 형변환 해줘야 값이 나옴.
				
			}
			else if(count==arr[i]) { //최대값이 중복일 때 ? 넣기
				ch = '?';
			}
			
		}
		
		System.out.println(ch);
		
		
	}//end main
}//end class

'백준 문제풀이' 카테고리의 다른 글

[백준] 1032번 문제풀이  (0) 2024.02.20
[백준] 1920번 문제풀이  (0) 2024.02.10
[백준]10828번 문제풀이  (0) 2024.02.05
[백준]25206번 문제 풀이  (0) 2024.01.28
[백준] 3052번 문제 풀이  (2) 2024.01.28