백준 25314번 풀이

BOJ/[BOJ] Python 2023. 5. 28. 01:53
반응형

문제

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
Lv. 36 라이츄

Lv. 36 라이츄

광고 매크로 없는 청정한 블로그를 위해 노력중입니다. 근데 나만 노력하는 것 같음… ㅡㅡ

방명록