TIL 2024-03-01 간단한 BufferedReader 와 StringTokenizer 사용법

2024. 3. 1. 20:29TIL

 

백준에서 BufferedReader와 StringTokenizer를 사용하라는데 어떻게 사용할지 몰라서 애먹었었다.

둘을 왜 사용하는지는 다음에 설명

 

내가 우선 Token의 개념을 몰랐음

 

Token

공백 (띄어쓰기, 개행, 탭) 등으로 구분되는 요소
안녕 하세 요 라고 하면 1. 안녕 2. 하세 3. 요 이렇게 구분 된다.

 

readLine() 하고 nextToken()? 뭐지? 했었는데 Token의 개념을 알면 이해된다.

 

"안녕 하세 요" 를 받고 nextToken()을 하면 "안녕" 이나오고 한번 더 하면 "하세" 가 나오는 것

 

https://www.acmicpc.net/problem/11659

 

11659번: 구간 합 구하기 4

첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j

www.acmicpc.net

 

여기 문제를 보면

 

이렇게 나오는데

 

5 3 을 N과 M에 저장하고

5 4 3 2 1 을 배열에 순서대로 저장

 

이후 1 3 / 2 4 / 5 5 를 저장해서 자유껏 풀면된다.

 

아아 이해된다~~

 


      
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer stringTokenizer = new StringTokenizer(br.readLine());
// 수의 갯수 N / 합을 구해야 하는 횟수 M
int N = Integer.parseInt(stringTokenizer.nextToken());
int M = Integer.parseInt(stringTokenizer.nextToken());
int[] NArr = new int[N + 1];
// 2번째는 N 개의 수가 주어진다.
stringTokenizer = new StringTokenizer(br.readLine());
for(int i = 1; i <= N; i++) {
NArr[i] = NArr[i-1] + Integer.parseInt(stringTokenizer.nextToken());
}
// M개의 합을 구해야 하는 i와 j -> i 부터 j 까지 구해라
for(int q = 0; q < M; q++) {
stringTokenizer = new StringTokenizer(br.readLine());
int i = Integer.parseInt(stringTokenizer.nextToken());
int j = Integer.parseInt(stringTokenizer.nextToken());
System.out.println(NArr[j]-NArr[i - 1]);
}
}
}

 

 

이렇게 풀었음!

 

readLine()으로 값 입력 받고 nextToken으로 값들 변수에 저장해서 자유롭게 사용하면된다.

 

bufferdReader는 데이터를 파싱하지 않고 문자열 그대로 들고 오기 때문에 형변환을 해줘야 한다.

저작자표시 (새창열림)

'TIL' 카테고리의 다른 글

TIL 2024-07-24 도메인 주도 설계란 무엇일까  (1) 2024.07.24
TIL 2024-05-09 N+1, 그리고 Fetch join  (0) 2024.05.09
TIL 2024-02-26 TCP/IP 인터넷 계층, 링크 계층  (0) 2024.02.27
TIL 2024-02-25 TCP 연결 성립 / 연결 해제 과정  (0) 2024.02.25
TIL 2024-02-24 TCP / IP 전승 계층 교환 방식  (0) 2024.02.24
'TIL' 카테고리의 다른 글
  • TIL 2024-07-24 도메인 주도 설계란 무엇일까
  • TIL 2024-05-09 N+1, 그리고 Fetch join
  • TIL 2024-02-26 TCP/IP 인터넷 계층, 링크 계층
  • TIL 2024-02-25 TCP 연결 성립 / 연결 해제 과정
wonow_
wonow_
꾸준히 성장하는 개발자 WONOW 입니다. 🤗
wonow_
wonow_
wonow_
전체
오늘
어제
  • 분류 전체보기
    • Language
      • JAVA
    • TIL
    • 코딩테스트
      • 프로그래머스
      • 백준
    • 프로젝트
      • JAVA
      • Spring
    • 기타
    • ERROR
      • Spring
    • CS
      • 알고리즘
      • DB
      • Kafka
    • 잡담
    • 활동
      • 척척박사

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 문자열 붙여서 출력하기
  • 공부열심히하자
  • 문자열 돌리기
  • 프로그래머스
  • 티스토리 꾸미기
  • 티스토리챌린지
  • 나는바봉가봉가
  • 홀짝 구분하기
  • 오블완

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
wonow_
TIL 2024-03-01 간단한 BufferedReader 와 StringTokenizer 사용법
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.