[백준] - 단계별로 풀어보기(문자열) 1157

김민경·2022년 4월 12일
0

백준

목록 보기
35/39

백준 1157번

단어 공부

문제 출처 https://www.acmicpc.net/problem/1157


내가 작성한 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String s = br.readLine().toUpperCase(); //대문자로 변경하여 받는다.
		int str[] = new int[26]; 
		
		for(int i=0; i<s.length(); i++) {
			str[s.charAt(i)-65]++;
		}
		int max=-1;
		char ch =' ';
		for(int i=0; i<26; i++) {
			if(max<str[i]) {
				max = str[i];
				ch = (char)(i+65);
			}
			else if(max==str[i]) {
				ch = '?';
			}
		}
		System.out.println(ch);
	}
}

아스키코드

접근 방법

  1. toUpperCase()를 이용하여 대문자로 변환하여 s에 받는다.
  2. 아스키코드에서 대문자 이므로 -65를 하여 해당 인덱스 값을 +1해준다.
    ex) A-65 = 0 이므로 str[0] =1
  3. 최댓갓을 구하기 위해 max=-1로 초기화 해주고 str를 하나씩 모두 비교해가며 현재 최대값보다 크면 (char)캐스트 형식을 하여 문자로 바꾸어준다.
    만약 현재 최대값과 값이 같다면 ?를 출력하도록 한다.

0개의 댓글

관련 채용 정보