[Java] 백준 1264번 모음의 개수

xyzw·2023년 3월 15일
0

algorithm

목록 보기
3/12

문제

영문 문장을 입력받아 모음의 개수를 세는 프로그램을 작성하시오. 모음은 'a', 'e', 'i', 'o', 'u'이며 대문자 또는 소문자이다.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 영어 대소문자, ',', '.', '!', '?', 공백으로 이루어진 문장이 주어진다. 각 줄은 최대 255글자로 이루어져 있다.

입력의 끝에는 한 줄에 '#' 한 글자만이 주어진다.

출력

각 줄마다 모음의 개수를 세서 출력한다.


풀이

모음 배열 만들기

소문자뿐만 아니라 대문자도 원소로 넣어주어야 한다.

char [] vowel = {'a', 'A', 'e', 'E', 'i', 'I', 'o', 'O', 'u', 'U'};

문장별로 모음 개수 세기

  • 한 글자씩 모음 배열의 원소 중 일치하는 것이 있는지 비교하고, count에 모음 개수를 저장한다.
int count=0;

for(int i=0; i<msg.length(); i++)
	for(int j=0; j<vowel.length; j++)
		if(msg.charAt(i)==vowel[j])
			count++;
  • 문장별로 count를 저장하기 위해서 리스트를 만들고, 리스트에 count를 순서대로 추가한다.
while(!(msg=sc.nextLine()).equals("#")){
    int count=0;
    for(int i=0; i<msg.length(); i++){
        for(int j=0; j<vowel.length; j++)
            if(msg.charAt(i)==vowel[j])
                count++;
    }
    list.add(count);
}

전체 코드

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        char [] vowel = {'a', 'A', 'e', 'E', 'i', 'I', 'o', 'O', 'u', 'U'};
        List<Integer> list = new ArrayList<>();
        String msg;
        while(!(msg=sc.nextLine()).equals("#")){
            int count=0;
            for(int i=0; i<msg.length(); i++){
                for(int j=0; j<vowel.length; j++)
                    if(msg.charAt(i)==vowel[j])
                        count++;
            }
            list.add(count);
        }

        for(int i=0; i<list.size(); i++)
            System.out.println(list.get(i));
    }
}

0개의 댓글