6단계 문제 번호 1157번 : 단어 공부 - JAVA [자바]
728x90
https://www.acmicpc.net/problem/1157
아스키 코드를 사용하지 않고 제 나름대로 만들어서 결과를 출력하는것까지는 성공했는데 백준에서는 시간 초과가 걸려서 정답으로 처리가 되지 않더라고요 결국에는 저도 아스키 코드르 사용하여서 해결하였습니다.
26개의 배열을 만들고
해당 알파벳이 출력될때마다 해당 배열이 1씩 증가하는 코드를 넣은 후
그 증가할때마다 최대값과 비교하여 증가한 값이 최대 값보다 크면 최대 값에 증가한 값을 넣고
결과에도 그 최대 값에 해당하는 알파벳을 넣습니다.
만약에 최대값과 증가한 값의 크기가 동일하다면 결과값에 ?를 넣어주는 형식으로 코드를 만들었습니다.
정답
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int[] count = new int[26];
int max = -1;
char result = '?';
String s = sc.next();
s = s.toUpperCase();
for(int i = 0; i < s.length(); i++){
count[s.charAt(i) - 'A']++;
if(max < count[s.charAt(i) - 'A']){
max = count[s.charAt(i) - 'A'];
result = s.charAt(i);
}else if(max == count[s.charAt(i) - 'A']){
result = '?';
}
}
System.out.println(result);
}
}
이클립스로 돌렸을 때는 1초도 안걸렸는데..큰 프로젝트에서는 0.001초도 줄려야 하는게 맞으니깐 이렇게 해결하는게 맞는거 같습니다.
'알고리즘 > 백준 문제 및 정답' 카테고리의 다른 글
문제 번호 2908번 : 상수 - JAVA [자바] (0) | 2021.12.22 |
---|---|
문제 번호 1152번 : 단어의 개수 - JAVA [자바] (0) | 2021.12.22 |
6단계 문제 번호 2675번 : 문자열 반복 - JAVA [자바] (0) | 2021.12.20 |
6단계 문제 번호 10809번 : 알파벳 찾기 - JAVA [자바] (0) | 2021.12.20 |
6단계 문제 번호 11720번 : 숫자의 합 - JAVA [자바] (0) | 2021.12.19 |