[BaekJoon] 5554번 - 심부름 가는 길 (java)
1. 문제
👉 문제 바로가기
- 조건
시간 제한 | 메모리 제한 |
---|---|
1초 | 128MB |
- 문제
승균이는 매일 학교, PC방, 학원에 다닌다. 반복되는 일상에 익숙해진 승균이는 이동시간을 단축해서 PC방에 더 오래 머물고 싶었다. 그래서 스톱워치를 들고 이동할 때마다 기록을 잰 후 집에 가서 분석해보기로 했다.
집에 도착한 승균이는 측정한 결과를 보는 데, 전부 초 단위로 기록되어있다! 맨날 놀기만 해서 총 이동 시간이 몇 분 몇 초인지 계산을 못 하는 승균이를 도와주자.
하루 동안 측정한 결과가 주어지면, 이날의 총 이동 시간이 몇 분 몇 초인지 출력하는 프로그램을 작성하시오.
- 입력
입력은 총 4줄이며, 한 줄에 하나씩 양의 정수가 적혀있다.
- 첫 번째 줄에 집에서 학교까지의 이동 시간을 나타내는 초가 주어진다.
- 두 번째 줄에 학교에서 PC방까지의 이동 시간을 나타내는 초가 주어진다.
- 세 번째 줄에 PC방에서 학원까지의 이동 시간을 나타내는 초가 주어진다.
- 마지막 줄에 학원에서 집까지의 이동 시간을 나타내는 초가 주어진다.
집에 늦게 가면 혼나기 때문에, 총 이동시간은 항상 1 분 0 초 이상 59 분 59 초 이하이다.
- 출력
총 이동시간 x 분 y 초를 출력한다. 첫 번째 줄에 x를, 두 번째 줄에 y를 출력한다.
- 예제
입력 | 출력 |
---|---|
31 34 7 151 |
3 43 |
316 430 643 1253 |
44 2 |
5 10 15 30 |
1 0 |
2. 풀이
- 알고리즘
for 반복문
을 사용해 이동시간을 4번 입력받고 이동시간의 합을 구한다.
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문 작성;
}
2개의 입력방식을 사용해서 결과를 출력한다.
- Scanner 클래스
- BufferedReader 클래스
2-1. Scanner 클래스
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int sum = 0; // 이동시간의 총 합
for(int i=0;i<4;i++){
sum += sc.nextInt();
}
System.out.println(sum / 60 + "\n" + sum % 60);
}
}
위와같이 객체를 생성할 때, Scanner(System.in) 에서
System.in
은 입력한 값을Byte 단위
로 읽는 것을 뜻한다.
int형 데이터를 입력받기 위해
nextInt()
메서드를 사용한다.
sum
은 이동시간의 총 합이다.
sum / 60
은 초의 총 합을 60(초)로 나눈 몫이므로분
을 나타낸다.
sum % 60
은 초의 총 합을 60(초)로 나눈 나머지이므로초
를 나타낸다.
[여기서 잠깐!]
2-2. BufferedReader 클래스 사용
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main{
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int sum = 0;
for(int i=0;i<4;i++){
sum += Integer.parseInt(br.readLine());
}
System.out.println(sum / 60 + "\n" + sum % 60);
}
}
readLine()
메서드를 사용해 입력받은 값을 한 줄 통째로 읽어 String 으로 반환한다.
Integer.parseInt()
을 사용해 String형을int형으로 변환
시켜준다.
[여기서 잠깐!]
BufferedReader 클래스
에 대해 더 알아보고 싶으면 여기를 클릭하면 된다.3. Scanner VS BufferedReader 성능 비교
입력의 경우 확실히 Scanner 보다는 BufferedReader 가 빠른 것을 볼 수 있다.
관련 페이지
Leave a comment