백준/Java

[백준 자바] 1264번(모음의 개수)

gamzaggang7 2024. 6. 22. 13:15
728x90

난이도 - 브론즈 4

문제

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

입력

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

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

출력

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

 


 

728x90

1. String.indexOf()

모음 문자열(vowel)에 입력 문장의 각 문자의 index 값을 확인한다. 문자가 모음이 아니면 indexOf는 -1을 반환하고 모음이면 -1이 아닌 해당 index값을 반환한다.

import java.io.*;

public class Main1264 {
  public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    StringBuffer sb = new StringBuffer();
    String vowel = "aeiouAEIOU";

    while (true) {
      String str = br.readLine();

      if (str.equals("#"))
        break;

      int count = 0;

      for (int i = 0; i < str.length(); i++) {
        if (vowel.indexOf(str.charAt(i)) != -1) {
          count++;
        }
      }

      sb.append(count).append('\n');
    }

    bw.write(sb.toString());

    bw.flush();
    br.close();
    bw.close();
  }
}

 

2. set

set을 사용하여 모음을 저장하고 문자열의 각 문자가 set에 있는지(모음인지) 확인한다.

import java.io.*;
import java.util.*;

public class Main1264 {
  public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    StringBuffer sb = new StringBuffer();
    Set<Character> vowel = new HashSet<>();
    vowel.add('A');
    vowel.add('E');
    vowel.add('I');
    vowel.add('O');
    vowel.add('U');
    vowel.add('a');
    vowel.add('e');
    vowel.add('i');
    vowel.add('o');
    vowel.add('u');

    while (true) {
      String str = br.readLine();

      if (str.equals("#"))
        break;
        
      int count = 0;

      for (int i = 0; i < str.length(); i++) {
        if (vowel.contains(str.charAt(i))) {
          count++;
        }
      }

      sb.append(count).append('\n');
    }

    bw.write(sb.toString());

    bw.flush();
    br.close();
    bw.close();
  }
}

728x90