반응형
단어의 개수를 찾는 얼핏 간단해 보이는 문제이다.
공백을 기준으로 단어를 찾기 위해 split()함수를 사용했다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String text = sc.nextLine();
text = text.trim();
String[] ary = text.split(" ");
System.out.println(ary.length);
sc.close();
}
}
trim() 함수를 이용해 앞뒤 공백을 지우고 split()함수로 공백을 기준으로 잘라 ary 배열에 저장한 후,
이 배열의 길이를 출력해주는 코드이다.
다만 이 경우, 제출시 '틀렸습니다' 라고 나오는데, 그 이유는 아무것도 없는 문자열(공백만 있는 문자열)의 경우 0이아닌 1을 반환해 주기 때문이다.
ary 배열은 예시의 'The Curious Case of Benjamin Button' 이라는 문자를 입력한 경우,
ary = ["The", "Curious", "Case", "of", "Benjamin", "button"]
와 같이 저장되어 이 배열의 길이를 반환했을 때 6이라는 결과값을 얻을 수 있지만,
빈 값 혹은 공백만으로 이루어진 문자를 입력했을 때의 ary 배열은
ary = [""]
이 되어 '빈 문자열' 을 원소로 갖는 배열이 되는 것이다. 이 때문에 이 배열의 길이는 1이 된다.
때문에 이를 해결해 주기 위해 입력받은 문자열에 trim()함수를 취한 결과가 빈 문자열인 경우를 따로 생각해주면 된다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String text = sc.nextLine();
text = text.trim();
String[] ary = text.split(" ");
if (text.equals("")) {
System.out.println(0);
} else {
System.out.println(ary.length);
}
sc.close();
}
}
해결 완료.
반응형
'Java > 백준알고리즘' 카테고리의 다른 글
[Java] 백준알고리즘 #5622 다이얼 (2) | 2023.10.03 |
---|---|
[Java] 백준알고리즘 #2908 상수 (0) | 2023.10.03 |
[Java] 백준알고리즘 #10811 바구니 뒤집기 (0) | 2023.10.02 |
[Java] 백준알고리즘 #10813 공 바꾸기 (0) | 2023.09.29 |
[Java] 백준알고리즘 #10810 공 넣기 (0) | 2023.09.29 |