코린이의 소소한 공부노트

[LeetCode/Easy] 434. Number of Segments in a String 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 434. Number of Segments in a String

무지맘 2022. 11. 30. 14:51

1. Input

1) 문자열 s

 

2. Output

1) ssegment의 개수

2) segment란 공백 문자가 아닌 문자로 이루어진 문자열을 말한다.

 

3. Constraint

1) 0 <= s.length <= 300

2) s는 영어 대소문자, 숫자, 특수문자 !@#$%^&*()_+-=',.:로 이루어져 있다.

3) 공백 문자는 ' '뿐이다.

 

4. Example

Input: s = "Hello, my name is John" -> Output: 5

설명: s"Hello,", "my", "name", "is", "John"5개의 segment로 이루어져 있다.

 

5. Code

1) 첫 코드(2022/07/15)

String[] ss = s.split(" ");
int len = 0;
for(int i=0 ; i<ss.length ; i++)
    if(!ss[i].equals("")) len++;
return len;

  - 첫 문자가 공백일 경우 split()을 썼을 때 빈 문자열이 생기는데, 이를 segment로 세지 않기 위해 for문을 이용했던 것으로 기억한다.

2) StringTokenizer를 이용한 코드(2022/11/30)

import java.util.*;

StringTokenizer st = new StringTokenizer(s," ");
return st.countTokens();

  - 1번이 코딱지만큼 빠르고, 공간 절약은 2번이 압도적으로 잘 된다.