알고리즘/백준 알고리즘
[java] 백준 알고리즘 1157번 단어공부 풀이
희랍인 조르바
2018. 5. 23. 16:50
* 풀이 소스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | public class Baekjoon1157 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String word = br.readLine().toUpperCase(); // 입력되는 문자 모두 대문자로 변환 boolean flag = true; // 가장 많이 사용한 단어가 단수인지 복수인지 구분 int[] mostUsedAlphabet = new int[26]; for(int i=0; i<word.length(); i++) { mostUsedAlphabet[word.charAt(i) - 65] += 1; // 해당 문자가 나올 때마다 1씩 올라감 } int max = 0; int maxIndex = 0; int duplicateMax = 0; for(int j=0; j<mostUsedAlphabet.length; j++) { if(max < mostUsedAlphabet[j]) { // 가장 큰 값이 계속 업데이트 됨 max = mostUsedAlphabet[j]; maxIndex = j; // 가장 큰 값이 있는 배열 인덱스 }else if(max == mostUsedAlphabet[j]) { duplicateMax = max; // 최대값이 중복되는지 체크하기 위함 } } if(duplicateMax == max) { // 최대값이 복수면 false flag = false; } if(flag) { bw.write((char)(maxIndex+65)); // 아스키 코드 변환 }else { bw.write("?"); } bw.flush(); } } | cs |