[BaekJoon] 25314번 - 코딩은 체육과목입니다 (java)
1. 문제
👉 문제 바로가기
- 조건
| 시간 제한 | 메모리 제한 |
|---|---|
| 0.5초 | 1024MB |
- 문제
오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ 책을 열심히 읽었던 혜아는 간단히 두 수를 더하는 코드를 칠판에 적었다. 코드를 본 면접관은 다음 질문을 했다. “만약, 입출력이 N바이트 크기의 정수라면 프로그램을 어떻게 구현해야 할까요?”
혜아는 책에 있는 정수 자료형과 관련된 내용을 기억해 냈다. 책에는 long int는 4바이트 정수까지 저장할 수 있는 정수 자료형이고 long long int는 8바이트 정수까지 저장할 수 있는 정수 자료형이라고 적혀 있었다. 혜아는 이런 생각이 들었다. “int 앞에 long을 하나씩 더 붙일 때마다 4바이트씩 저장할 수 있는 공간이 늘어나는 걸까? 분명 long long long int는 12바이트, long long long long int는 16바이트까지 저장할 수 있는 정수 자료형일 거야!” 그렇게 혜아는 당황하는 면접관의 얼굴을 뒤로한 채 칠판에 정수 자료형을 써 내려가기 시작했다.
혜아가 N바이트 정수까지 저장할 수 있다고 생각해서 칠판에 쓴 정수 자료형의 이름은 무엇일까?
- 입력
첫 번째 줄에는 문제의 정수 N이 주어진다. $(4 ≤ N ≤ 1000; N은 4의 배수)
- 출력
혜아가 N바이트 정수까지 저장할 수 있다고 생각하는 정수 자료형의 이름을 출력하여라.
- 예제
| 입력 | 출력 |
|---|---|
| 4 | long int |
| 20 | long long long long long int |
2. 풀이
반복문 for를 사용해 long 을 반복 출력한다.
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문 작성;
}
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 num = sc.nextInt()/4;
String str = "";
for(int i=0;i<num;i++){
str += "long ";
}
str += "int";
System.out.println(str);
}
}
위와같이 객체를 생성할 때, Scanner(System.in) 에서
System.in은 입력한 값을Byte 단위로 읽는 것을 뜻한다.
int형 데이터를 입력받기 위해
nextInt()메서드를 사용한다.
for 반복문을 사용해 long을 num 만큼 반복한다.
뒤에띄어쓰기필수!!
반복을 끝낸 str 변수에 “int” 를 추가한다.
[여기서 잠깐!]
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 num = Integer.parseInt(br.readLine())/4;
String str = "";
for(int i=0;i<num;i++){
str += "long ";
if(i==num-1){
str += "int";
}
}
System.out.println(str);
}
}
readLine()메서드를 사용해 입력받은 값을 한 줄 통째로 읽어 String 으로 반환한다.
Integer.parseInt()을 사용해 String형을int형으로 변환시켜준다.
if 조건문을 사용해 마지막 반복이면 str 변수에 “int” 를 추가한다
[여기서 잠깐!]
BufferedReader 클래스에 대해 더 알아보고 싶으면 여기를 클릭하면 된다.3. Scanner VS BufferedReader 성능 비교
입력의 경우 확실히 Scanner 보다는 BufferedReader 가 빠른 것을 볼 수 있다.
관련 페이지
Leave a comment