Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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
Archives
Today
Total
관리 메뉴

봄디의 개발일지

[백준 / 문자열] 10808번 : 알파벳 개수 - (JAVA/자바) 본문

백준

[백준 / 문자열] 10808번 : 알파벳 개수 - (JAVA/자바)

bomdy 2024. 7. 8. 22:43

📝 문제


💭 풀이 방법

  1. 출력 결과값을 보아 a부터 z까지의 개수를 모두 출력해야하므로 26개를 갖는 정수형 배열을 선언
  2. 아스키코드 값 이용하기
  • a는 97번이므로 입력한 값에 97을 빼면 소문자 알파벳의 배열의 인덱스와 동일해진다!
    예를 들어, apple을 입력했다고 가정했을 때, a는 아스키코드의 값이 97이므로 -97을 하면 0이 된다.
    즉, array[0]에는 a의 개수가 들어가는 자리이므로, 인덱스와 값이 동일해지는 것이다.
    마찬가지로, p의 아스키코드의 값은 112이고, 97을 빼면, 15이다. 즉, array[15]에 p의 개수를 넣을 수 있는 것이다.
  1. charAt() 사용하기
  • charAt() 이란 String 으로 저장된 문자열 중에 한 글자만 char 타입으로 변환해줍니다.
  1. for문을 돌려 출력하기
  • 개수를 공백으로 구분하여 출력하므로 " " 추가하기

😊 작성한 코드

package String;

import java.util.Scanner;

public class 알파벳_개수 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int array[] = new int[26];
        String word = scanner.nextLine();

        for(int i=0; i<word.length(); i++) {
            array[word.charAt(i)-97]++;
        }

        for(int i=0; i<array.length; i++) {
            System.out.print(array[i]+" ");
        }
    }
}

🚨 주의사항

  • 백준문제를 자바로 푼 경우, 제출할 때는 class 이름은 Main 으로, 코드 위에 package가 없어야한다.