그저 내가 되었고
☕️Java:: 백준 자바 1157번(단어 공부) 본문
문제
풀이 설계
① 답안을 '대문자'로 출력하면 되니 먼저 toUpperCase 이용해서 전부 대문자로 변환
② 알파벳 갯수만큼의 int 배열 생성
③ for문으로 입력 str의 length만큼 순회하며 입력 str[i]의 알파벳 인덱스값 하나하나씩 ②의 배열 해당 자리에 ++
④ max를 일단 0으로, answer을 ?로 둔 후 ②의 배열 순회하며 큰 값 만날때마다 max값 업데이트 후 그 값으로 answer 인덱스 뽑아서 char로 변환해 정답 리턴
⑤ max값이 같은게 하나라도 있으면 가장 많이 사용된 알파벳이 여러개라는 뜻이므로 정답으로 ? 리턴
답안 소스코드
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
|
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
String str = s.toUpperCase();
int[] count = new int[26];
for (int i = 0; i < str.length(); i++) {
int num = str.charAt(i) - 'A';
count[num]++;
}
int max = 0;
char answer = '?';
for (int i = 0; i < count.length; i++) {
if (max < count[i]) {
max = count[i];
answer = (char) (i + 'A'); //아스키코드 문자 ↔ 숫자
} else if (max == count[i]) {
answer = '?';
}
}
System.out.println(answer);
}
}
|
cs |
새로 배운 메쏘드
아스키코드 문자 ↔ 숫자
e.g. 문자 to 숫자
char ch = sc.nextLine().charAt(0);
int num = (int)ch;
e.g. 숫자 to 문자
int num = sc.nextInt();
char ch = (char)num;
'개발 > Java' 카테고리의 다른 글
☕️Java:: ArrayList & removeIf & switch case (1) | 2023.11.24 |
---|---|
☕️Java:: 백준 자바 2098번(외판원 순회) (0) | 2023.10.29 |
☕️Java:: forEach 람다 출력 & 메소드 참조(::) 출력 (1) | 2023.10.14 |
☕️Java:: 백준 자바 20499번 (0) | 2023.10.06 |
☕️Java:: 알고리즘 문제에서 자주 쓰이는 함수(계속 업데이트중) (0) | 2023.08.16 |