문제
정답 풀이
이 많은 실패들이 보이시나요..?
문제 딱 읽고 그냥 공백 기준으로 문자열 잘라서 배열에 넣은 다음에 배열 길이 출력해주면 되겠네~~
라고 생각했는데 안되는 거에요
그래서 아 처음과 끝에 공백 들어오는 경우도 생각해줘야하는구나 싶어서
for문 안에다 if문 만들고 continue로 해주고 그 외는 count 세서 출력을 해줬는데 이것도 안되는거죠
생각해보니 for문안에 if문을 넣으면 안되겠다 싶어서 빼도 안되고..
if 조건문을 바꿔도 안되고..
결국 구글링의 힘을 빌려 성공한게 바로 이 코드입니다!
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] arr = br.readLine().split(" ");
if(arr.length == 0){
System.out.print(0);
System.exit(0);
}
if(arr[0] == "") {
System.out.println(arr.length - 1);
}else{
System.out.println(arr.length);
}
}
}
만약 아무것도 입력이 안되어있다면 0을 출력해주면 강제종료해줍니다.
만약 제일 앞에 공백이 들어온다면 배열 길이에서 1을 빼준 값을 출력해주고
그 외에는 배열 길이 값을 출력해줍니다
이렇게 보니까 코드가 굉장히 간단한데 왜이리 삥삥 돈 기분일까요ㅠㅠ
다른 분들은 StringTokenizer를 많이 사용하시더라고요
StringTokenizer
StringTokenizer st = new StringTokenizer(br.readLine()," ");
이렇게 작성해주게 되면
공백을 기준으로 나누어 토큰에 저장해주기 때문에
st.countTokens()로 토큰의 개수만 출력해주면 끝입니다!
굉장히 간단하네요..
charAt을 통해 문자 하나씩 공백인지 아닌지를 체크하고 count해주는 코드들도 많이 보였습니다!
여러분들은 저처럼 헤매지 마시고 간단하게 StringTokenizer 사용하세요..
진짜 바보같은 건 StringTokenizer 사용해서 알고리즘 풀었었다는 거....바보 멍청이...
'Computer Science (CS) > 알고리즘' 카테고리의 다른 글
[백준/Java] 5622번 다이얼 (0) | 2023.05.05 |
---|---|
[백준/Java] 2908번 상수 (0) | 2023.05.02 |
[백준/Java] 2675번 문자열 반복 (0) | 2023.05.02 |
[프로그래머스/Java] 이진 변환 반복하기 (0) | 2023.04.28 |
[프로그래머스/Java] 올바른 괄호 (0) | 2023.04.28 |