[JAVA]백준 알고리즘 25314번 : 코딩은 체육과목 입니다
https://www.acmicpc.net/problem/25314
25314번: 코딩은 체육과목 입니다
오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++
www.acmicpc.net
문제
오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++ 책을 열심히 읽었던 혜아는 간단히 두 수를 더하는 코드를 칠판에 적었다. 코드를 본 면접관은 다음 질문을 했다. “만약, 입출력이 바이트 크기의 정수라면 프로그램을 어떻게 구현해야 할까요?”
혜아는 책에 있는 정수 자료형과 관련된 내용을 기억해 냈다. 책에는 long int는 바이트 정수까지 저장할 수 있는 정수 자료형이고 long long int는 바이트 정수까지 저장할 수 있는 정수 자료형이라고 적혀 있었다. 혜아는 이런 생각이 들었다. “int 앞에 long을 하나씩 더 붙일 때마다 바이트씩 저장할 수 있는 공간이 늘어나는 걸까? 분명 long long long int는 바이트, long long long long int는 바이트까지 저장할 수 있는 정수 자료형일 거야!” 그렇게 혜아는 당황하는 면접관의 얼굴을 뒤로한 채 칠판에 정수 자료형을 써 내려가기 시작했다.
혜아가 바이트 정수까지 저장할 수 있다고 생각해서 칠판에 쓴 정수 자료형의 이름은 무엇일까?
풀이
문제를 읽어보면, 혜아는 long의 개수당 4바이트씩 증가한다고 생각하고 있다.
따라서 정수 N이 주어질 때, long의 개수는 N / 4 개가 될 것이다.(N은 4의 배수라는 조건이 있음)
반복문을 사용하여 출력 조건에 맞게 출력하면 된다.
코드
BufferedReader 클래스와 StringBuilder 클래스를 이용한 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
for(int i = 0; i < N / 4; i++) {
sb.append("long ");
}
sb.append("int");
System.out.println(sb);
}
}
틀린 부분이 있다면 정정해 주시면 감사하겠습니다.
궁금한 부분이 있거나, 다른 아이디어가 있으시면 자유롭게 댓글 남겨주세요!