코딩 기록 저장소

[백준/Java] 25314번: 코딩은 체육과목 입니다 본문

백준/반복문 (완료)

[백준/Java] 25314번: 코딩은 체육과목 입니다

KimNang 2023. 4. 18. 12:57

문제 정보

제목 : 코딩은 체육과목 입니다

번호 : 25314번

사용 언어 : Java

문제 링크

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

 

25314번: 코딩은 체육과목 입니다

오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++

www.acmicpc.net

 

시간 제한 메모리 제한
0.5 초 (추가 시간 없음) 1024 MB (추가 메모리 없음)

 

문제

 

오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ 책을 열심히 읽었던 혜아는 간단히 두 수를 더하는 코드를 칠판에 적었다. 코드를 본 면접관은 다음 질문을 했다. “만약, 입출력이 바이트 크기의 정수라면 프로그램을 어떻게 구현해야 할까요?”

혜아는 책에 있는 정수 자료형과 관련된 내용을 기억해 냈다. 책에는 long int 4바이트 정수까지 저장할 수 있는 정수 자료형이고 long long int 8바이트 정수까지 저장할 수 있는 정수 자료형이라고 적혀 있었다. 혜아는 이런 생각이 들었다. “int 앞에 long을 하나씩 더 붙일 때마다 4바이트씩 저장할 수 있는 공간이 늘어나는 걸까? 분명 long long long int 12바이트, long long long long int 16바이트까지 저장할 수 있는 정수 자료형일 거야!” 그렇게 혜아는 당황하는 면접관의 얼굴을 뒤로한 채 칠판에 정수 자료형을 써 내려가기 시작했다.

혜아가 바이트 정수까지 저장할 수 있다고 생각해서 칠판에 쓴 정수 자료형의 이름은 무엇일까?

 

입력

첫 번째 줄에는 문제의 정수 이 주어진다. ;  4의 배수)

 

출력

혜아가 바이트 정수까지 저장할 수 있다고 생각하는 정수 자료형의 이름을 출력하여라.

 

입출력 예제

 

노트

출력에서 long long, long int 사이에는 공백이 하나씩 들어간다.

실제로 C++에서 각 정수 자료형이 저장할 수 있는 수의 크기는 환경에 따라 달라질 수 있다. 덧붙여, 실제로 문제 내용과 같이 long long long int와 같은 자료형을 사용한 코드를 GCC의 C++ 컴파일러를 사용해 컴파일하려고 할 경우 'long long long' is too long for GCC라는 에러 메시지와 함께 컴파일되지 않는다.


나의 풀이

BufferedReader을 이용해 한줄의 입력값을 입력받아 정수형으로 형변환합니다. long 타입은 4바이트이므로 4로 나누어서 num에 저장합니다. 이것은 반복하는 횟수가 됩니다. num번 반복하는 for루프를 이용해 "long "를 출력합니다. 반복이 끝나면 "int"를 출력합니다.

코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {
   
   public static void main(String[] args) throws IOException {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
      
      int num = Integer.parseInt( br.readLine() ) / 4;
      
      for(int i = 0; i < num; i++) {
    	  bw.write( "long " );
      }
      
      bw.write( "int" );
      
      bw.flush();
      bw.close();
      br.close();
   }   
}

 

'백준 > 반복문 (완료)' 카테고리의 다른 글

[백준/Java] 11021번: A+B - 7  (0) 2023.04.19
[백준/Java] 15552번: 빠른 A+B  (0) 2023.04.18
[백준/Java] 25304번: 영수증  (0) 2023.04.17
[백준/Java] 8393번: 합  (0) 2023.04.17
[백준/Java] 10950번: A+B - 3  (0) 2023.04.16