[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