suheang

[백준] | JAVA, 자바 | 2386번 - 도비의 영어 공부 본문

알고리즘

[백준] | JAVA, 자바 | 2386번 - 도비의 영어 공부

suheang 2024. 5. 17. 21:56

https://www.acmicpc.net/problem/2386

 


문제 요약 :

입력은 몇 개의 줄들로 이루어진다.

각 줄에는 하나의 소문자와 영어 문장이 공백으로 구분되어 주어진다.

각 문장은 길이가 1에서 250이며 입력의 마지막은 #이다.

 

출력의 각 줄은 입력으로 주어진 소문자와 그 소문자 알파벳이 나타난 횟수로 이루어진다. 이때 문장에서 해당 알파벳이 소문자로 나타나던 대문자로 나타나던 모두 세야 한다.


문제 풀이 :

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        while (true) {
            String input = br.readLine();
            if (input.equals("#")) {
                break;
            }

            char alphabet = input.charAt(0);
            String sentence = input.substring(2);
            int count = 0;

            char target = Character.toLowerCase(alphabet);
            for (int i = 0; i < sentence.length(); i++) {
                if (Character.toLowerCase(sentence.charAt(i)) == target) {
                    count++;
                }
            }
            System.out.println(alphabet + " " + count);
        }
    }
}

 

1. 문자열 입력받기

2. 입력받은 문자열이 만약 #이라면 while문 종료

3. 입력받은 문자열 첫 번째 문자를 alphabet에 저장,

3번째 문자부터(첫 번째 문자는 알파벳, 두 번째 문자는 공백이기 때문에) sentence에 저장

4. 알파벳이 나타난 횟수를 저장하기 위한 변수 count 생성

5. alphabet에 저장된 알파벳을 소문자로 변환하고 변수 target에 저장

6. sentence에 저장된 단어를 한 글자씩 가져와 target과 비교하고 같으면 count 증가

7. 저장된 alphabet과 count 출력