728x90
https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
import java.io.*;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " "); // 띄어쓰기 기준으로 분리하겠다!
int up = Integer.parseInt(st.nextToken()); // 올라가는 길이
int down = Integer.parseInt(st.nextToken()); // 내려가는 길이
int length = Integer.parseInt(st.nextToken()); // 막대의 전체 길이
int day = (length - down) / (up - down); // 어차피 정상에 도달하면 내려가지 않기 때문에 (length - down)에서 실질적으로 올라가는 길이 나눠주기
if((length-down)%(up-down)!=0) { // 나눈 결과가 딱 떨어지지 않는다면 한 번 더 올라가야 한다는 뜻
day++; // +1 해주기
}
System.out.println(day);
}
}
- StringTokenizer
- BufferedReader: 라인 단위로 읽어들임 ⇒ 컴마, 스페이스로 문자열을 구분하기 위해 StringTokenizer 사용!
- 생성 방식
- StringTokenizer st = new StringTokenizer(문자열); → 띄어쓰기 기준으로 문자열 분리
- StringTokenizer st = new StringTokenizer(문자열, 구분자); → 구분자 기준으로 문자열 분리
- StringTokenizer st = new StringTokenizer(문자열, 구분자, true/false); → 구분자 기준으로 문자열 분리(true: 구분자 토큰에 포함, false: 구분자 토큰에 미포함)
- 메서드
| 리턴값 | 메서드명 | 역할 |
| boolean | hasMoreTokens() | 남아있는 토큰이 있으면 true 리턴, 더 이상 토큰이 없으면 false 리턴 |
| String | nextToken() | 객체에서 다음 토큰 반환 |
| String | nextToken(String delim) | delim 기준으로 다음 토큰 반환 |
| boolean | hasMoreElements() | hasMoreTokens와 동일하지만 잘 안씀 |
| Object | nextElements() | nextToken 메서드와 동일하지만 문자열 아닌 객체 리턴 |
| int | countTokens() | 총 토큰 개수 리턴 |
'코딩테스트 > Baekjoon' 카테고리의 다른 글
| [백준/JAVA] 1193번: 분수 찾기 (0) | 2023.08.16 |
|---|---|
| [백준/JAVA] 2292번: 벌집 (0) | 2023.08.16 |
| [백준/JAVA] 1712번: 손익분기점 (0) | 2023.08.16 |
| [백준/JAVA] 2908번: 상수 (0) | 2023.08.16 |
| [백준/JAVA] 1152번: 단어의 개수 (0) | 2023.08.16 |