Backend
home
🔡

[백준] 모음의 개수

생성일
2025/03/18 13:11
태그
BaekJoon
게시일
2025/03/18
최종 편집 일시
2025/03/18 13:20

문제

해결 방안 고민

알파벳 모음을 구분하여 카운팅하는 문제이다.

해결 방법

입력한 알파벳을 전부 대문자 혹은 소문자로 바꾼 다음에 switch ~ case 를 활용하여 구분해준다.

코드

첫 번째 풀이
package algo250318; import java.io.*; // 모음의 개수 - 브론즈 4 public class Baek1264 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = ""; while (true) { str = br.readLine(); if (str.equals("#")) { break; } str = str.toLowerCase(); int length = str.length(); int count = 0; for (int i = 0; i < length; i++) { switch (str.charAt(i)) { case 'a': count++; break; case 'e': count++; break; case 'i': count++; break; case 'o': count++; break; case 'u': count++; break; default: } } System.out.println(count); } } }
Java
복사
두 번째 풀이 - 배열의 특징을 활용함
package algo250318; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; // 모음의 개수 - 브론즈 4 public class Baek1264_2 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String str = ""; while (true) { str = br.readLine(); if (str.equals("#")) { break; } str = str.toLowerCase(); int length = str.length(); int[] arr = new int[5]; for (int i = 0; i < length; i++) { switch (str.charAt(i)) { case 'a': arr[0]++; break; case 'e': arr[1]++; break; case 'i': arr[2]++; break; case 'o': arr[3]++; break; case 'u': arr[4]++; break; default: } } length = arr[0] + arr[1] + arr[2] + arr[3] + arr[4]; bw.write(String.valueOf(length)); bw.newLine(); } bw.flush(); bw.close(); br.close(); } }
Java
복사
세 번째 풀이 - switch ~ case 문의 활용 참고
package algo250318; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; // 모음의 개수 - 브론즈 4 public class Baek1264_3 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = ""; while (true) { str = br.readLine(); if (str.equals("#")) { break; } str = str.toLowerCase(); int length = str.length(); int count = 0; for (int i = 0; i < length; i++) { switch (str.charAt(i)) { case 'a': case 'e': case 'i': case 'o': case 'u': count++; break; default: } } System.out.println(count); } } }
Java
복사

정리

str = str.toLowerCase(); int length = str.length(); int count = 0;
Java
복사
문제풀이 과정에서 count 변수를 str과 length 사이의 위치시키면 속도가 더 떨어지는 현상을 확인할 수 있었는데, count 변수를 다시 length 하단에 위치시켜서 진행을 하니 속도가 개선되었다. 변수의 위치에 따라서 속도가 개선될 수도 있다는 것을 확인할 수 있었다.