728x90
백준 1157번 단어 공부
내가 떠올린 풀이 해설
정답 출력을 다 대문자로 진행하기 때문에 문자를 다 대문자로 바꾸어 준 후 알파벳 개수만큼 배열을 생성한다. for 문에 i = 0부터 i < str.length()까지 하나씩 탐색하면서 입력받은 문자에서 - 65를 해준다. (arr [str.charAt(i) - 65]++ ) max값을 arr [str.charAt(i) - 65]로 바꾸어준다. 또한 ch에 그 단어를 저장해준다. 만약 max값이랑 arr [str.charAt(i)]값이랑 같으면 ch에 '?'를 저장해준다. for문을 끝내고 ch를 출력해준다.
정확한 풀이
import java.util.*;
import java.io.*;
public class Baek1157 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
str = str.toUpperCase();
int[] arr = new int[26];
int max = -1;
char ch = '?';
for(int i = 0; i < str.length(); i++) {
arr[str.charAt(i) - 65]++;
if(max < arr[str.charAt(i) - 65]) {
max = arr[str.charAt(i) - 65];
ch = str.charAt(i);
}
else if(max == arr[str.charAt(i) - 65]) {
ch = '?';
}
}
System.out.println(ch);
}
}
오늘의 회고
프로젝트 리펙토링을 진행하다가 댓글 화면이 안 나오는데 일주일 넘게 이를 잡고 있습니다. 오늘 해결해 보려고 했는데 오늘도 실패해서 하고 싶은 생각이 안 들어 머리를 좀 식힐 겸 알고리즘 쉬운 문제를 한 문제를 풀었습니다. 하지만 아이디어를 떠올리는데 시간이 걸렸습니다. 알파벳만큼 배열을 만들어 문자 - 65를 하면 그 문자의 위치에 더해준다는 것을 못 떠올렸습니다. ㅠㅠ 아직 갈길이 먼 것 같습니다.
728x90
'알고리즘 > 알고리즘 문제풀이' 카테고리의 다른 글
Do it! 알고리즘 코딩 테스트 (67번 ~ 68번) (0) | 2022.06.22 |
---|---|
Do it! 알고리즘 코딩 테스트 (64번 ~ 66번) (0) | 2022.06.21 |
백준) HashMap (0) | 2022.06.18 |
Do it! 알고리즘 코딩 테스트 (62번 ~ 63번) (0) | 2022.06.17 |
Do it! 알고리즘 코딩 테스트 (61번) (0) | 2022.06.16 |