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
'백준 > Java' 카테고리의 다른 글
[백준 자바] 2581번(소수) - 에라토스테네스의 체 (0) | 2024.06.23 |
---|---|
[백준 자바] 1978번(소수 찾기) (0) | 2024.06.22 |
[백준 자바] 1312번(소수) (0) | 2024.06.22 |
[백준 자바] 2153번(소수 단어) (0) | 2024.06.22 |
[백준 자바] 8741번(이진수 합) (0) | 2024.06.21 |