오늘은 문자열에서 브론즈 2 문제인 단어의 개수 문제를 풀어보려 합니다.
이번 문제는 처음에 생각 없이 풀어봤는데 실패라고 뜨길래 뭘 실수했지 곰곰이 생각해보게 되는 문제였던 거 같아요
어떤 문제인지 문제 풀러 가보겠습니다.
문제는
https://www.acmicpc.net/problem/1152
여기서 확인하시면 됩니다.
문제풀이
package Baek;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine().trim();
if (s.isEmpty()) {
System.out.println(0);
} else {
System.out.println(s.split(" ").length);
}
}
}
이번 문제의 경우 제가 문자열의 맨 앞에 공백이 있을 경우를 깜빡하고 코딩을 한 결과 당연히 실패로 나왔던 겁니다.... 하하..... (처음엔 charAt( )으로 풀려고 했으나 이후 바꿨습니다.)
우선 가장먼저 처음부터 맨 앞 뒤의 공백을 trim()을 써서 지우고 시작했습니다.
두 번째로 isEmpty를 써서 문자열의 길이가 0인 경우 true를 리턴해서 0을 출력시켰습니다.
그 이외일 때는 split함수를 사용해 공백(" ")을 기준으로 문자열을 나누어서 그 length를 리턴 시켰습니다.
이렇게 했더니 겨우 성공이 뜨더라구요 정답 비율이 왜 29.025%인가 해서 봤는데 문제만 잘 읽었으면 아마 정답률이 조금 더 올라가지 않았나 생각해봅니다.
아 Scanner가 편해서 최근에 계속 Scanner만 사용했는데 확실히 성능이 떨어지는 게 눈에 보이는 것 같아요 ㅜㅜ
그래서 앞으로는 연습도 할 겸 BufferedReader를 사용해서 문제를 풀어보도록 하겠습니다.
'Algorithm > Baekjoon' 카테고리의 다른 글
[Baekjoon] 백준 10953 A + B - 6 - java (0) | 2022.02.19 |
---|---|
[Baekjoon] 백준 2908 상수 - java (0) | 2021.07.23 |
[Baekjoon] 백준 4344 평균은 넘겠지 - java (0) | 2021.07.20 |
[Baekjoon] 백준 8958 OX퀴즈 - java (2) | 2021.07.19 |
[Baekjoon] 백준 1546 평균 - java (0) | 2021.07.18 |