https://www.acmicpc.net/problem/1152
설명, input, output은 아래와 같다.
이 문제의 중요한 점은 한 줄을 읽어와서 띄어쓰기로 나눠져 잇는 단어를 세는 것이다.
문제 해결 방법
1. Scanner을 이용해서 nextLine으로 한줄을 읽고 앞뒤 trim을 통해서 앞뒤 공백을 없앤다.
2. if문을통해서 공백인 곳과 공백이 아닌것을 나눈다.
3. 공백이 아닌 곳에 split(" ")을 통해서 띄어쓰기로 단어를 나누고 그 단어의 갯수를 length를 통해서 파악한다.
import java.util.Scanner;
public class Backjoon_1152 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 한 라인을 읽어온 후 trim을 통해서 빈 공백을 제거한다.
String s = sc.nextLine().trim();
// 공백으로 올 때 0을 주기 위해서 if문으로 걸러준다
if (s.isEmpty()) {
System.out.println(0);
} else {
// s를 띄어쓰기로 split을 하고 split한 값의 길이를 들고온다.
System.out.println(s.split(" ").length);
}
}
}
두번 째 풀이 방법이다.
StringTokenizer을 이용해서 분리 기준을 공백으로 지정해주면 공백을 기준으로 나뉘어 토큰에 저장해주는 것이다.
이 방법은 처음과 마지막의 공백에 대해 별다른 예외 처리를 안해줘도 되니 매우 편리한 방법이다.
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String S = sc.nextLine();
sc.close();
// st 에 공백을 기준으로 나눈 토큰들을 st 에 저장한다
StringTokenizer st = new StringTokenizer(S," ");
// countTokens() 는 토큰의 개수를 반환한다
System.out.println(st.countTokens());
}
}
'알고리즘 > 알고리즘 공부(JAVA)' 카테고리의 다른 글
backjoon_1546_평균 Using(Java) (0) | 2022.08.31 |
---|---|
backjoon_1339_두수비교하기 Using(Java) (0) | 2022.08.31 |
알고리즘_백준_1157_단어 공부 Using_By(Java) (0) | 2022.08.29 |
알고리즘_백준_1002 Using_By(Java) (0) | 2022.08.29 |
알고리즘_백준_1000 Using_By(Java) (0) | 2022.08.29 |