목차
#1 문자 개수 세시
문제 설명
알파벳 대소문자로만 이루어진 문자열 my_string이 주어질 때, my_string에서 'A'의 개수, my_string에서 'B'의 개수,..., my_string에서 'Z'의 개수, my_string에서 'a'의 개수, my_string에서 'b'의 개수,..., my_string에서 'z'의 개수를 순서대로 담은 길이 52의 정수 배열을 return 하는 solution 함수를 작성해 주세요.
제한 사항
- 1 ≤ my_string의 길이 ≤ 1,000
입출력 예
my_string | result |
"Programmers" | [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0] |
입출력 예 설명
- 예제 1번의 my_string에서 'P'가 1개, 'a'가 1개, 'e'가 1개, 'g'가 1개, 'm'이 2개, 'o'가 1개, 'r'가 3개, 's'가 1개 있으므로 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0]를 return 합니다.
#2 코드 및 알고리즘
class Solution {
public int[] solution(String my_string) {
int[] answer = new int[52];
//answer[0~25] = 대문자, answer[26~51] = 소문자
for(int i = 0; i < my_string.length(); i++){
if(65 <= my_string.charAt(i) && my_string.charAt(i) <= 90){ // 대문자인 경우
answer[(int)(my_string.charAt(i))-65]++;
} else { // 소문자인 경우
answer[(int)(my_string.charAt(i))-71]++;
}
}
return answer;
}
}
-------------------------------------------------
정확성 테스트
테스트 1 〉 통과 (0.02ms, 72.7MB)
테스트 2 〉 통과 (0.02ms, 73.8MB)
테스트 3 〉 통과 (0.03ms, 73MB)
테스트 4 〉 통과 (0.02ms, 74.7MB)
테스트 5 〉 통과 (0.04ms, 77.8MB)
테스트 6 〉 통과 (0.03ms, 77.6MB)
테스트 7 〉 통과 (0.06ms, 71.3MB)
테스트 8 〉 통과 (0.03ms, 71.7MB)
테스트 9 〉 통과 (0.03ms, 76.1MB)
테스트 10 〉 통과 (0.08ms, 73MB)
테스트 11 〉 통과 (0.09ms, 72.6MB)
테스트 12 〉 통과 (0.11ms, 69MB)
테스트 13 〉 통과 (0.16ms, 83.3MB)
테스트 14 〉 통과 (0.14ms, 74.6MB)
테스트 15 〉 통과 (0.12ms, 70.4MB)
테스트 16 〉 통과 (0.16ms, 73.2MB)
테스트 17 〉 통과 (0.13ms, 72.2MB)
테스트 18 〉 통과 (0.12ms, 77.9MB)
테스트 19 〉 통과 (0.03ms, 71.9MB)
테스트 20 〉 통과 (0.02ms, 72.8MB)
풀이:
- 아스키코드에서 소문자는 97 ~ 122, 대문자는 65 ~ 90에 속한다.
- for문을 통해 주어진 문자열의 길이만큼 반복하면서 대문자일 경우에 65를 빼며 소문자일 경우 71을 뺌으로서
- 대문자는 0~25 사이의 인덱스에 저장하고 소문자는 26~51 사이의 인덱스에 저장하는 알고리즘이다.
'JAVA > 프로그래머스 코딩 기초 트레이닝' 카테고리의 다른 글
[프로그래머스, LV.0] 배열 만들기 1 (0) | 2023.09.04 |
---|---|
[프로그래머스, LV.0] 첫 번째로 나오는 음수 (0) | 2023.09.03 |
[프로그래머스, LV.0] qr code (0) | 2023.06.28 |
[프로그래머스, LV.0] 세로 읽기 (0) | 2023.06.28 |
[프로그래머스, LV.0] 문자열 뒤집기 (0) | 2023.06.28 |