Hayden's Archive
[알고리즘] 백준 1152번 : 단어의 개수 본문
알고리즘 문제 풀이 : https://www.acmicpc.net/problem/1152
백준 단계별로 풀어보기 - 문자열 문제 중 가장 낮은 정답 비율을 기록한 문제. 문제 자체가 어렵다기보다는 고려해야 할 예외가 많다.
단어 사이에 들어가있는 공백, 맨 앞에 있는 공백, 맨 뒤에 있는 공백을 모두 고려했고 이클립스에서는 잘만 돌아가는데 백준에서는 틀렸다고 떴다. 4번 정도 고배를 마시고 내가 놓친 예외가 뭐가 있을까 계속 생각해봤다. 내가 미처 한 가지 고려하지 못한 경우가 있었는데 단어 없이 공백으로만 주어진 경우였다. 내가 짠 코드에서는 공백의 개수를 구해서 공백의 개수+1로 문자의 개수를 구했는데, 그렇게 되면 공백만 주어졌을 때 단어의 개수가 1로 뜨게 된다.
내가 작성한 코드
그리하여 문자열이 공백으로만 주어질 경우를 반영하여 다시 짠 코드.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int count = 0;
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
for(int i=0; i<str.length(); i++) {
String temp = str.substring(i, i+1);
if(i==0 && temp.equals(" ")) continue;
else if(i==str.length()-1 && temp.equals(" ")) continue;
else if(temp.equals(" ")) count++;
}
if(str.equals(" ")) System.out.println(count);
else System.out.println(count+1);
}
}
어느덧 백준 8단계까지 문제 풀이 완료! 아직 가야할 길이 한참 멀지만 계속 꾸준히 나아가자.