-
[백준/BOJ] 1264번 : 모음의 개수 (JAVA / 자바)백준 2022. 2. 17. 00:08
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/1264
- 문제 -
난이도 브론즈 2 문제이다.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야한다.
더 자세한 내용은 아래 글 참고 하면 좋다.
풀이 방법
두가지 방법으로 풀어보았다.
하지만 그전에 공통적으로 적용되는 풀이 방법을 보자.
무한루프문을 사용했고, #입력시 무한루프를 종료한다.
입력받는 값은 문자열로 입력받고, 소문자 대문자가 다 올 수 있는데 소문자 대문자를 따로 계산하면 코드가 길어질테니 우리에겐 유용한 대문자 또는 소문자로 입력값을 바꿔주는 함수가 있으니 그걸 사용한다. 필자는 대문자로 바꿔 했지만 소문자로 바꿔도 된다.
1. 입력받은 값을 0인덱스부터 모음과 같을 경우 정수형 변수에 +1씩 해서 마지막 인덱스까지 끝났을때 변수에 저장된 값을 출력.
2. 입력받은 값에 모음을 다 빼주고, 기존 입력값의 길이에서 모음을 뺀 값의 길이를 빼주고 출력한다.
코드로 보자.
-풀이-
1번 방법
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //무한루프 while(true) { //입력받을 값을 대문자로 바꿔 저장. String S = br.readLine().toUpperCase(); //모음의 개수를 저장 할 변수 int count = 0; //#입력시 무한루프 종료 if(S.equals("#")) break; for(int i = 0; i < S.length(); i++) { //모음은 5가지가 있으니 or로 각자 조건을 넣어준다.(길어서 3줄로 나눴다.) if(S.charAt(i) == 'A' || S.charAt(i) == 'E' || S.charAt(i) == 'I' || S.charAt(i) == 'O' || S.charAt(i) == 'U') count++; } System.out.println(count); } } }
2번째 방법
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //무한루프 while(true) { //입력받을 값을 대문자로 바꿔 저장. String S = br.readLine().toUpperCase(); //# 입력시 무한루프 종료 if(S.equals("#")) break; //5가지의 모음을 지워서 result에 저장.(한줄로 하면 길어지니 한줄에 하나씩 지워줌) String result = S.replace("A", "") .replace("E", "") .replace("I", "") .replace("O", "") .replace("U", ""); //두 문자열 길이의 차를 출력 System.out.println(S.length() - result.length()); } } }
-결과-
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수분들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠습니다.
'백준' 카테고리의 다른 글
[백준/BOJ] 11022번 : A+B - 8 (JAVA / 자바) (0) 2022.02.17 [백준/BOJ] 11021번 : A+B - 7 (JAVA / 자바) (0) 2022.02.17 [백준/BOJ] 11006번 : 남욱이의 닭장 (JAVA / 자바) (0) 2022.02.16 [백준/BOJ] 10984번 : 내 학점을 구해줘 (JAVA / 자바) (0) 2022.02.16 [백준/BOJ] 1037번 : 약수 (JAVA / 자바) (0) 2022.02.16