반응형
https://www.acmicpc.net/problem/1152
백준 알고리즘 1152번
영어 대소문자와 공백으로 이루어진 문장을 문자열로 입력받고 그 문장의 단어 개수를 구하는 문제입니다.
입력받은 문장의 공백은 연속해서 나오는 경우는 없고 단어의 앞과 뒤에는 공백이 있을 수 있습니다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String sentence = br.readLine().trim(); // 입력 받은 문자열을 trim()을 통해 앞뒤 공백 제거
String[] arr = sentence.split(" "); // 띄어쓰기를 기준으로 스플릿
// 문장은 공백과 단어로 구성되어 있기 때문에 공백만 입력되는 것을 생각 해줘야 한다
if(sentence.equals("")) { .
bw.write(String.format("%d", 0));
}else {
bw.write(String.format("%d", arr.length));
}
br.close();
bw.flush();
bw.close();
}
}
위의 알고리즘을 기준으로 각자만의 방식으로 if문 등을 수정한다면 조금 더 빠른 런타임을 가져갈 수 있습니다.
처음 알고리즘을 떠올렸을 때 그리 어렵지 않다고 생각했는데, 실제로 풀었을 때 문장이 하나의 공백으로 이루어질 수 있다는 것을 망각하여 오답이 나왔었습니다. 실제로 이 문제의 정답률이 28%인 게 그런 이유가 아닐까 싶네요.
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준 알고리즘][자바] 2941번 : 크로아티아 알파벳 (0) | 2021.06.05 |
---|---|
[백준 알고리즘][자바] 2908번 : 상수 (0) | 2021.06.05 |
[백준 알고리즘][자바] 1157번 : 단어 공부 (0) | 2021.05.12 |
[백준 알고리즘][자바] 10890번 : 알파벳 찾기 (0) | 2021.03.10 |
[백준 알고리즘][자바] 11720번 : 숫자의 합 (0) | 2021.03.05 |
댓글