https://www.acmicpc.net/problem/1264
1264번: 모음의 개수
입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 영어 대소문자, ',', '.', '!', '?', 공백으로 이루어진 문장이 주어진다. 각 줄은 최대 255글자로 이루어져 있다. 입력의 끝에는 한 줄
www.acmicpc.net


요 문제는 공백을 포함한 영어문장을 입력받았을때 그 문장에 영어 모음(a,i,e,o,u) 가 포함된 개수를 파악하는 문제다.
먼저 주어지는 문장은 대소문자와 특수문자 공백을 포함한 문자열이고 테스트에 대한 테스트케이스는 주어지지 않는다.
[전체 코드]
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true) {
int result = 0;
String str = sc.nextLine();
//next()는 공백을 구분해 입력받기 때문에 nextLine()을 사용해준다.
if(str.equals("#")) {
//#이 입력되면 테스트가 종료되도록 조건문을 걸어준다.
break;
}
str = str.toLowerCase();
//입력케이스로 대문자 모음도 입력될 경우 파악이 불가능하기 때문에
//모두 소문자로 통일하여 모음개수를 파악하도록 한다.
result += countStr(str, 'a');
result += countStr(str, 'e');
result += countStr(str, 'i');
result += countStr(str, 'o');
result += countStr(str, 'u');
//각 모음별로 만들어둔 함수를 호출하여 result 변수에 개수를 더한다.
System.out.println(result);
}
}
public static int countStr(String str, char ch) {
//문자열에 포함된 문자 개수 함수 (문자열과 찾아야할 문자가 입력값)
int count = 0;
for (int i=0;i<str.length();i++) {
//문자열의 길이 만큼 반복해준다
if(str.charAt(i) == ch) {
//문자열.charAt은 문자열을 배열처럼 접근할 수 있게 해준다.
count++;
}
}
return count;
}
}
[제출 결과]

아직 자바의 String 개념이 너무 미숙하다. 이번문제도 구글링을 통해 풀어냈다. 구글링을 통해 문제를 풀어나가는것도 충분히 의미있다고 생각하지만 어느정도 개념이 있어야 구글링도 손쉽고 더 정확하게 할 수 있다. 그러면서 실력이 늘어가는것일까. 나름 문자열에 대해 많은것을 배울 수 있는 문제였다.
'Programming > Algorithm(ACM Problems)' 카테고리의 다른 글
| [백준] 1731번 : 추론 / [자바] JAVA / 학습기록 (0) | 2022.01.16 |
|---|---|
| [백준] 1568번 : 새 / [자바] JAVA / 학습기록 (0) | 2022.01.16 |
| [백준] 1547번 : 공 / [자바] JAVA / 학습기록 (0) | 2022.01.16 |
| [백준] 1371번 : 가장 많은 글자 / [자바] JAVA / 학습기록 (0) | 2022.01.16 |
| [백준] 1259번 : 팰린드롬수 / [자바] JAVA / 학습기록 (0) | 2022.01.14 |