반응형

문자열 처리..


단순 문자열 처리이다.

근데 정답 비율이 엄청 낮다. 왜 그럴까? 예시가 적어서..

띄어쓰기가 한칸만 있다고 생각하면 큰 오산이다.

자바에서 split(" ") 하면 끝이라 생각해서 많이 틀린것 같다.

그렇다면 어떠한 예시가 있을까?

A B C D E      F

라는 예제가 있다고 가정하자.

split()  함수를 쓰면 String 배열 중간중간 "" 값을 갖게 된다. 그래서 정답이 틀리게 나온다.

이 부분만 제거하면 성공이다.


풀이

1. 문장을 입력받는다.

2. 띄어쓰기가 연속으로 나올 수 있으니 그 경우만 조심한다. 구현은 알아서.


소스

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
 
class Main {
 
    public static void main(String[] args) throws Exception {
 
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("input.txt")));
        String[] str = br.readLine().split(" ");
        int count = str.length;
        for (int i = 0; i < str.length; i++) {
            if (str[i].equals("")) {
                count--;
            }
        }
        System.out.println(count);
    }
}
 
cs


반응형

+ Recent posts