반응형

 

 

 

<코드>

import java.util.*;
public class Main {
	
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);

		String S = sc.nextLine(); // 한 라인 입력받기
		S = S.trim(); // 양쪽 공백제거
		String ans[] = S.split(" "); // 공백기준으로 스플릿
		if(ans.length == 1 && ans[0].equals("")) {
			System.out.println(0);
		}else {
			System.out.println(ans.length);
		}
	}
}

 

풀이 방법

쉬운 브론즈 문제임에도 정답 비율이 약 29%로 낮은 문제입니다. 

양쪽 공백을 제거하고 문자의 개수를 세었음에도 불구하고 틀려서 당황하신 분들이 많으실 텐데요.

반례로 "   " 와 같이 공백들을 입력하였을 때 값이 0으로 제대로 나오는지 확인하시면 쉽게 풀이가 가능할 것 같습니다.

 

저 같은 경우에는 공백을 입력했을 시 ans배열의 원소 개수가 1이 되고 ans[0]값이 ""가 되기 때문에 공백 입력 시엔 0을 출력하도록 하였습니다.

 

https://www.acmicpc.net/problem/1152

 

1152번: 단어의 개수

첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열

www.acmicpc.net

 

반응형

+ Recent posts