https://www.acmicpc.net/problem/1157
이 문제는 주어진 input에 대해서 가장 많이 쓰인 알파벳을 대문자로 출력하는 것이다.
방법
1. 대문자로 출력의 문제이기에 편리를 위해 입력값도 모두 대문자로 변환(String.toUpperCase() : 모두 대문자로 변경)
2. 알파벳은 'A~Z'는 총 26개이다. 26크기의 배열 2개 선언 하나는 중복됫는지 확인을 위함, 하나는 가장 큰 문자의 위치를 파악하기 위함
3. 입력 문자열 길이만큼 반복문 수행
4. 배열 하나를 정렬 후 젤뒤와 젤뒤앞이 같으면 가장 많은 문자가 같으므로 "?"출력
5. 아니면 배열을 순서대로 확인해서 그 위치가 어디인지 확인하기
import java.util.Arrays;
import java.util.Scanner;
public class Backjoon_1157 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.next();
input = input.toUpperCase();
int[] arr = new int[26];
int[] Tarr = new int[26];
for (int i = 0; i < input.length(); i++) {
int temp = input.charAt(i) - 'A';
arr[temp] += 1;
Tarr[temp] += 1;
}
Arrays.sort(Tarr);
int max = 0;
int count = 0;
if (Tarr[25] == Tarr[24]) {
System.out.println("?");
} else {
for (int i = 0; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
count = i;
}
}
count = count + 65;
// 해당 알파벳 위치에 처음에 빼준 A를 더해줌
char answer = (char) count;
System.out.println(answer);
}
}
}
'알고리즘 > 알고리즘 공부(JAVA)' 카테고리의 다른 글
backjoon_1546_평균 Using(Java) (0) | 2022.08.31 |
---|---|
backjoon_1339_두수비교하기 Using(Java) (0) | 2022.08.31 |
알고리즘_백준_1152_단어의 개수 Using_By(Java) (0) | 2022.08.29 |
알고리즘_백준_1002 Using_By(Java) (0) | 2022.08.29 |
알고리즘_백준_1000 Using_By(Java) (0) | 2022.08.29 |