1일 1백준 7일차 두 번째, 오늘 푼 문제는 1157번 문제인 "단어 공부"이다.
https://www.acmicpc.net/problem/4344
이번에 짠 코드는 개인적으로 마음에 들지 않는다
아스키코드를 다루는 것이 익숙하지 않아서인지 시간도 많이 걸렸고 코드도 많이 지저분하다
더 개선할 여지가 있는 것 같으면서도 방법이 빨리 떠오르지는 않았다
역시 갈 길이 멀었다
아래로 내리면 정답 코드가 나옵니다. 문제를 아직 풀지 않으신 분들은 주의해주세요.
import java.util.Scanner;
import java.util.Arrays;
class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Func f = new Func();
int[] alphabet = new int[26];
String inputword = sc. next().toLowerCase(); //문자열을 전부 소문자로 만들어 처리를 용이하게 함
System.out.println(f.count(alphabet, inputword));
sc.close();
}
}
class Func{
char count(int[] arr, String word){
int big = 0;
int count = 0;
for(int a = 0 ; a < word.length() ; a++){ //알파벳이 나올 때마다 각 번째의 배열 값 ++
arr[(int)(word.charAt(a)) - 96 -1] ++;
}
for(int a = 0 ; a < arr.length ; a++){ //알파벳 배열을 돌면서 최댓값 찾기
if(arr[a] >= arr[big]){
big = a;
}
}
for(int a = 0 ; a < arr.length ; a++){ //최댓값과 같은 값이 있는지 검사
if(arr[a] == arr[big]){
count++;
}
}
if(count >= 2){
return (char)63; //물음표 출력
}
else{
return (char)(65 + big);
}
}
}
'1일 1백준' 카테고리의 다른 글
1일 1백준 : 9일차 2908번 상수 (0) | 2022.04.27 |
---|---|
1일 1백준 : 9일차 1152번 단어의 개수 (0) | 2022.04.27 |
1일 1백준 : 7일차 2675번 문자열 반복 (0) | 2022.04.25 |
1일 1백준 : 6일차 10809 알파벳 찾기 (0) | 2022.04.24 |
1일 1백준 : 4일차 11720번 숫자의 합 (0) | 2022.04.22 |