문제
오늘은 혜아의 면접 날이다.
면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다.
혜아가 받은 문제는 두 수를 더하는 문제였다.
C++ 책을 열심히 읽었던 혜아는 간단히 두 수를 더하는 코드를 칠판에 적었다.
코드를 본 면접관은 다음 질문을 했다. “만약, 입출력이 N바이트 크기의 정수라면 프로그램을 어떻게 구현해야 할까요?”
혜아는 책에 있는 정수 자료형과 관련된 내용을 기억해 냈다.
책에는 long int는 4바이트 정수까지 저장할 수 있는 정수 자료형이고
long long int는 8바이트 정수까지 저장할 수 있는 정수 자료형이라고 적혀 있었다.
혜아는 이런 생각이 들었다. “int 앞에 long을 하나씩 더 붙일 때마다 4바이트씩 저장할 수 있는 공간이 늘어나는 걸까?
분명 long long long int는 12바이트, long long long long int는 16바이트까지 저장할 수 있는 정수 자료형일 거야!”
그렇게 혜아는 당황하는 면접관의 얼굴을 뒤로한 채 칠판에 정수 자료형을 써 내려가기 시작했다.
혜아가 N바이트 정수까지 저장할 수 있다고 생각해서 칠판에 쓴 정수 자료형의 이름은 무엇일까?
https://www.acmicpc.net/problem/25314
입력
첫 번째 줄에는 문제의 정수 이 주어진다. (4≤N≤1000; 의 배수)
출력
혜아가 바이트 정수까지 저장할 수 있다고 생각하는 정수 자료형의 이름을 출력하여라.
예제 입력 1
4
예제 출력 1
long int
예제 입력 2
20
예제 출력 2
long long long long long int
문제 풀이
N = int(input())
for i in range(N//4):
print('long',end=' ')
print('int')
이번 문제는 4바이트당 long 1개를 출력하고 끝에 int를 출력하는 문제입니다.
해서 주어진 N을 4로 나눈 몫만큼 long을 출력하는 for 반복문을 활용하였습니다.
+ Python에서 print 함수는 자동으로 개행되기에 개행되지 않도록end=' '를 추가하였습니다.
print("Hello")
print("World")
>> Hello
World
print("Hello", end=" ")
print("world")
>> Hello World
저처럼 파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.