728x90
https://www.acmicpc.net/problem/1264
1264번: 모음의 개수
입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 영어 대소문자, ',', '.', '!', '?', 공백으로 이루어진 문장이 주어진다. 각 줄은 최대 255글자로 이루어져 있다. 입력의 끝에는 한 줄
www.acmicpc.net
● 문제
문장을 입력 받은 뒤 영어의 모음 a, e, i, o, u 의 갯수를 출력해 주고
#을 입력받으면 프로그램을 종료하는 알고리즘이다.
● 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
while(true) {
String a = s.nextLine().toLowerCase();
String[] b = a.split("");
int count;
count = 0;
if(a.equals("#"))
break;
for(int i = 0; i < b.length; i++)
{
if(b[i].equals("a") || b[i].equals("e") || b[i].equals("i") || b[i].equals("o") || b[i].equals("u"))
count++;
}
System.out.println(count);
}
s.close();
}
}
해당 알고리즘을 코딩할 때 실수한 부분이 있어 작성하려고한다.
1. 먼저 String의 경우 문자열을 비교하려면 == 연산자가 아닌 equals를 사용하여 비교를 해주어야한다.
나는 이를 까먹고 ==연산자를 사용하여 왜 안되지 이러고 있다가 순간적으로 equals가 생각 나 해결 하였다.
2. #을 입력시 끝내는 문장의 경우 글자를 비교하기 전에 코딩이 되어야 한다.
뒤에 코딩을 할 시 #의 모음갯수인 0도 출력하여서 문제를 틀리게된다.
3. 문장 입력시 대소문자 관계없이 비교가 되어야한다.
나는 이를 해결하고자 toLowerCase를 사용하여 입력받은 문장의 모든 문자를 소문자로 바꿔주었다.
728x90
'Study > BaekJoon' 카테고리의 다른 글
[백준 자바JAVA] 10250번 - ACM호텔 (0) | 2023.03.04 |
---|---|
[백준 자바JAVA] 4153번 - 직각삼각형 (0) | 2023.02.24 |
[백준 자바JAVA] 1085번 - 직사각형에서 탈출 (0) | 2023.02.24 |
[백준 자바JAVA] 1157번 - 단어 공부 (0) | 2022.12.26 |
[백준 자바JAVA] 1552번 - 단어의 개수 (0) | 2022.12.26 |