본문 바로가기
Programming/Algorithm(ACM Problems)

[백준] 1264번 : 모음의 개수 / [자바] JAVA / 학습기록

by jongmln_ 2022. 1. 15.

https://www.acmicpc.net/problem/1264

 

1264번: 모음의 개수

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

www.acmicpc.net

 


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

 

[백준] 1264번 : 모음의 개수 입출력 예제

 

요 문제는 공백을 포함한 영어문장을 입력받았을때 그 문장에 영어 모음(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 개념이 너무 미숙하다. 이번문제도 구글링을 통해 풀어냈다. 구글링을 통해 문제를 풀어나가는것도 충분히 의미있다고 생각하지만 어느정도 개념이 있어야 구글링도 손쉽고 더 정확하게 할 수 있다. 그러면서 실력이 늘어가는것일까. 나름 문자열에 대해 많은것을 배울 수 있는 문제였다.