본문 바로가기
코딩테스트

코딩은 체육과목 입니다

by 세인트킴 2024. 2. 6.

문제

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

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

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

입력조건

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

출력조건

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

입력 예시

4

출력 예시

long int

풀이

# 문제 풀이
n = int(input())
total = 0

for i in range(0, n+1, n//4):
    total += i

print('long' * total + 'int')

반복문 지정할때, 시작, 끝, 증감인줄 알고 n//4를 했지만 실제 출력은 total에 더하는 것이니 n = 20이면 total에는 50이 들어있게 된다.

그렇다고 해서 n//3을 하면 0, 6, 12, 18이 들어가서 다른 출력이 나온다. 결국 이것을 수정하는 방법은 간단하다.

n = int(input())

for i in range(n//4):
    print('long', end=' ')
print('int')

n//4 = print('long')을 찍고, end=' '를 해줘서 한칸 띄어준 다음 출력하도록 한다. 만약 end=' '를 하지 않으면 바로 줄바꿈이 실행되므로 다른 출력 결과를 낼 수 있다. 그리고 마지막에 'int'를 출력해준다.  

n = int(input())

for i in range(n//4):
	print('long', end=' ')
print('int')

만약 n / 4 를 한다면 5.0이 나오므로 float타입이 나온다. 그래서 n // 4를 해야지 5라는 int 타입이 잘 나온다.

'코딩테스트' 카테고리의 다른 글

A+B - 4  (0) 2024.02.06
A+B - 7  (0) 2024.02.06
알람 시계  (0) 2024.02.05
숫자 카드 게임  (0) 2024.02.02
큰 수의 법칙  (0) 2024.02.02