Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 | 31 |
Tags
- 프로그래머스 #mysql #동명 동물 수 찾기 #알고리즘 #코린이 #개발자
- 백준 #
- 프로그래머스 #한 해에 잡은 물고기 수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 백준 #4153 #직각삼각형 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #mysql #역순 정렬하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #python 개발자 찾기 #알고리즘 #mysql #코린이 #개발자 #study
- 프로그래머스 #조건에 맞는 회원수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #아픈 동물 찾기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #12세 이하인 여자 환자 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 코린이 #개발자 #study
- 백준 #다이얼 #5622 #알고리즘 #자바 #java #코린이 #개발자 #study
- 특정 옵션이 포함된 자동차 리스트 구하기 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #어린 동물 찾기 #코린이 #개발자 #study
- 프로그래머스 #모음 제거 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #알고리즘 #mysql #인기있는 아이스크림 #코린이 #개발자 #study
- 프로그래머스 #과일로 만든 아이스크림 고르기 #mysql #알고리즘 #코린이 #개발자 #study
- 백준 #네 번째 점 #3009 #자바 #java #알고리즘 #코린이 #개발자 #study
- mysql #min() #max() #최소값 #최대값 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #자동차 대여 기록에서 장기/단기 대여 구분하기 #코린이 #개발자 #study
- 프로그래머스 #동명 동물 수 찾기 #mysql #데이터베이스 #db #코린이 #개발자 #알고리즘
- 백준 #일곱 난쟁이 #2309 #자바 #java #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #경기도에 위치한 식품창고 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #흉부외과 또는 일반외과 의사 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #나이 정보가 없는 회원 수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #잡은 물고기의 평균 길이 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #알고리즘 #mysql #
- 프로그래머스 #가장 큰 물고기 10마리 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #이름이 있는 동물의 아이디 #코린이 #개발자 #study
- 프로그래머스 #잡은 물고기 중 가장 큰 물고기의 길이 구하기 #알고리즘 #mysql #코린이 #개발자 #study
Archives
- Today
- Total
luke
[백준] - 단어 공부 (1157) (자바/Java) 본문
https://www.acmicpc.net/problem/1157
문제.
풀이.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[26]; //영문자의 개수 26개
String str = sc.next();
for (int i = 0; i < str.length(); i++) {
if ('A' <= str.charAt(i) && str.charAt(i) <= 'Z') { //대문자 범위
arr[str.charAt(i) - 'A']++; //해당 인덱스의 값 1 증가
} else { //소문자 범위
arr[str.charAt(i) - 'a']++;
}
}
int max = -1;
char ch = '?';
for (int i = 0; i < 26; i++) {
if (arr[i] > max) {
max = arr[i];
ch = (char) (i + 65); //대문자로 출력해야하므로 65를 더해줌.
} else if (arr[i] == max) {
ch = '?';
}
}
System.out.println(ch);
}
}
이번 문제 쉽지 않았던것 같다..
반복문을 돌면서 해당 문자가 어떤 문자인지 따라 해당 배열 원소를 증가 시켜주어야 한다.
두 가지 케이스가 있는데, 대문자인 경우와 소문자인 경우 이다.
하지만 문제에서 대소문자는 구분하지 않는다고 했으니 대문자로 입력 받던, 소문자로 입력받던 같은 배열 원소의 값을 증가시켜야 한다.
예를 들면 a 와 A 가 있을 때 배열 arr 원소 중 증가시켜야 할 인덱스는 arr[0]으로 같다는 것이다.
계산 하기위해 표를 봐보자
보면 대문자의 범위는 십진수로 65 ~ 90 이다.
소문자의 범위는 97 ~ 122 이다.
즉 C 를 입력받았을 때, 배열의 세 번째 원소인 2을 도출해내려면 C 는 67이니 65를 빼주면 된다.
만약 소문자 e 를 입력받았을 경우에는 다섯 번째 원소인 4 를 도출해야하니 97을 빼주면 101 - 97 = 4로 배열의 인덱스 값을 도출할수 있다.
※참고 : https://st-lab.tistory.com/64
'알고리즘문제 > 백준 문제(Java)' 카테고리의 다른 글
[백준] - 최대공약수와 최소공배수 (2609) (자바/Java) (0) | 2024.02.21 |
---|---|
[백준] - 약수 (1037) (자바/Java) (0) | 2024.02.19 |
[백준] - 더하기3 (1102) (자바/Java) (0) | 2024.02.15 |
[백준] - 세 수 (10817) (자바/Java) (0) | 2024.02.14 |
[백준] - 단어의 개수 (1152) (자바/Java) (0) | 2024.01.26 |