한 걸음 두 걸음
baekjoon 1157 단어공부 ] 문자열처리 본문
반응형
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int[] alpha = new int[26];
int result = 0;
int check = 0;
int index = 0;
for(int i = 0; i < str.length(); i++)
for(int j = 0; j < 26; j++)
if(str.charAt(i) == 65+j || str.charAt(i) == 97+j) alpha[j]++;
for(int i = 0 ; i < alpha.length; i++) result = max(result, alpha[i]);
for(int i = 0 ; i < alpha.length; i++) if(alpha[i] == result) {check++; index = i;}
if(check > 1) System.out.println("?");
else System.out.println((char)(index+65));
}
private static int max(int a, int b) {
return a>b?a:b;
}
}
너무 하드코딩이다..ㅠㅠ
다른 방법으로는
- 받은 문자열을 다 toUpperCase()나 toLowerCase로 바꿔준 뒤
- 25개의 알파벳이므로 25개의 int배열 안에 나온 값(소문자기준, 문자열(i)-65)을 저장시켜주고
- int배열의 첫 번째 값과 나머지와 비교해서 가장 큰 값이 두 개 이상으로 겹치면 ? Flag를 설정해주고, 아니면 최대일 때의 index값을 받아놓는다.
- index + 65를 출력해주면 끝.
반응형
'CSE > baekjoon & swexpert' 카테고리의 다른 글
baekjoon 1100 하얀 칸 ] 문자열처리 (0) | 2019.03.10 |
---|---|
baekjoon 2908 상수 ] 문자열처리, int뒤집기 (0) | 2019.03.10 |
baekjoon 1152 단어의갯수 (0) | 2019.03.10 |
백준10699 ] 현재시간 Date / SimpleDateFormat 로 날짜 표시하기 (0) | 2019.03.07 |
백준 1237번 정ㅋ벅ㅋ.... (0) | 2019.03.07 |