728x90
입력받을때 영어의 대문자 소문자를 구분하는데 2가지 방법이 있다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int[] arr = new int[26];
String s = bf.readLine();
for (int i = 0; i < s.length(); i++) {
if ('a' <= s.charAt(i) && s.charAt(i) <= 'z') {
arr[s.charAt(i) - 97]++;
} else {
arr[s.charAt(i) - 65]++;
}
}
int max = -1;
char ch = '?';
for (int i = 0; i < 26; i++) {
if (arr[i] > max) {
max = arr[i];
ch = (char) (i + 65);
}
else if (arr[i] == max) {
ch = '?';
}
}
System.out.print(ch);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int[] arr = new int[26];
String s = bf.readLine().toUpperCase();
for (int i = 0; i < s.length(); i++) {
arr[s.charAt(i) - 65]++;
}
int max = -1;
char ch = '?';
for (int i = 0; i < 26; i++) {
if (arr[i] > max) {
max = arr[i];
ch = (char) (i + 65);
}
else if (arr[i] == max) {
ch = '?';
}
}
System.out.print(ch);
}
}
내장 함수 사용를 사용하는거보다 ASCII코드를 이용하는게 속도 면에서 유리하다.
아래 184ms 가 ASCII코드를 사용한 코드이다.
728x90
'알고리즘 풀이 > 백준' 카테고리의 다른 글
Java - [백준] 2292 벌집 (0) | 2022.09.27 |
---|---|
Java - [백준] 1316 그룹 단어 체커 (0) | 2022.09.23 |
Java - [백준] 3052번 나머지 (0) | 2022.09.09 |
Java - [백준] 11021 A+B -7 (0) | 2022.09.02 |
Java - [백준] 8393번 합 (0) | 2022.08.26 |
댓글