K_blueprint

#25314 - 코딩은 체육과목 입니다. 본문

Baekjoon 회고노트

#25314 - 코딩은 체육과목 입니다.

GODAGO 2024. 7. 26. 08:34
728x90
반응형

< 문제 내용 >

- 오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. 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이 주어진다.(N은 4의 배수)

 

< 출력 형태 >

- 주어진 N의 값이 4로 몇 번 나눠지는지를 계산한 후에 나눠진 횟수만큼 출력

 

< 풀이 및 회고 >

(풀이 코드)

N = int(input())

if (N % 4) != 1:			# N이 4의 배수일때만 실행

    if (N // 4) > 1:			# N이 1 이상일때 실행(4로 2번 이상 나눠지는 경우) 
        value = N // 4
        print("long "*(value-1), "long int", sep="")		# 나눠지는 횟수-1만큼 "long"출력
    
    elif (N // 4) == 1:			# N이 1일때 실행(4로 1번만 나눠지는 경우)
        print("long int")
'''
  • long을 앞에 어떻게 출력할지 알면 크게 어렵지 않은 문제
  • 파이썬은 "문자" * 숫자를 하게 되었을 때 해당 숫자만큼 문자를 출력해 주기에 가능한 코드였다.
  • 제일 처음의 4의 배수일 때만 실행하는 코드는 굳이 필요 없었을 수도...

 

 

728x90
반응형

'Baekjoon 회고노트' 카테고리의 다른 글

#10951 - A+B -4  (0) 2024.07.28
#15552 - 빠른 A+B  (0) 2024.07.26
#10950 - A+B -3  (2) 2024.07.24
#2525 - 오븐 시계  (2) 2023.09.18
#2884 - 알람 시계  (0) 2023.09.18