본문 바로가기
BOJ/[BOJ] Python

백준 25314번 풀이

by Lv. 35 라이츄 2023. 5. 28.

문제

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

 

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

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

www.acmicpc.net

보자마자 이거 파이썬으로 풀어도 되는건가 진지하게 고민하긴 했는데 4의 배수가 입력되면 그거 4로 나눠서 long을 그만큼 출력해야 한다.

 

Reference

https://learn.microsoft.com/ko-kr/cpp/cpp/data-type-ranges?view=msvc-170 

 

데이터 형식 범위

자세한 정보: 데이터 형식 범위

learn.microsoft.com

 

풀이

책을 뭘 읽고 간거냐... 참고로 C언어에서는 제일 긴 게 롱롱이다. 롱롱 unsigned 기준으로 범위는 18,446,744,073,709,551,615이고 signed이면 –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807. unsigned는 음수따원 없다. 아무튼... 64바이트라고 롱롱롱롱롱롱롱롱롱롱...롱 인트 이런 사태는 없으니 안심하시길.

 

import sys 
byte = int(sys.stdin.readline())

사실 입력은 간단하다. 항상 문제는 로직과 출력이지. 여기서는 for랑 while 투트랙으로 풀어볼건데 for와 while은 맥락이 다른 반복문이라는 걸 잊지 말자. for는 범위가 주어지고 while은 조건이 주어진다.

 

import sys 
byte = int(sys.stdin.readline())

for i in range(byte // 4):
    print('long')
print('int')

아 이거 로직은 저게 맞는데 그냥 내면 안된다. 내 말 들어요. 저거 저대로 내면 출력 망해.

import sys 
byte = int(sys.stdin.readline())

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

이렇게 내야 한다. 위 코드는 end가 없어서 줄바꿈이 돼서 나오고 end=" "까지 넣어줘야 줄바꿈 없이 공백 하나 두고 나온다. 이거 맞냐고? 예. 그럼 while은 어떻게 하냐고?

 

import sys 
byte = int(sys.stdin.readline())

i = 0
while i < (byte // 4):
    print('long', end=" ")
    i += 1
print('int')

while은 조건부 반복문이니까 조건을 지정해줘야죠. 그래서 저거 다 맞았냐고?

 

물논 다 맞았지. 

'BOJ > [BOJ] Python' 카테고리의 다른 글

백준 10813번 풀이  (0) 2023.05.28
백준 10810번 풀이  (0) 2023.05.28
백준 11382번 풀이  (0) 2023.05.28
백준 2587번 풀이  (0) 2022.11.15
백준 2738번 풀이  (0) 2022.11.14

최근댓글

최근글

skin by © 2024 ttutta