728x90
4892번: 숫자 맞추기 게임
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n0으로 이루어져 있다. (0 < n0 < 1,000,000) 입력의 마지막 줄에는 0이 하나 주어진다.
www.acmicpc.net
📌 풀이
입력은 여러 개의 테스트 케이스로 이루어져 있다 (while문)
입력의 마지막 줄에는 0이 하나 있다 (입력값이 0일 경우 break)
조건대로 따라 써준다. n1, n2 등등 그대로 따라 쓰기만 하면 된다.
문제는 출력인데 조건이 까다롭다.
테스트 케이스의 번호 + "." + "even" or "odd" + n4
string과 int가 마구 섞여 있어서 이렇게 + 형태로 묶어주면 원하는 출력값의 모양이 안 나온다.
print(i, '. ', 'even ', int(n4), sep='')
전에 푼 풀이를 보니 이런 식으로 다 붙여 쓰되 sep을 공백 없이 주었다.
이번에는 f string을 활용해보았다.
최근 js를 배우면서 `` ${} 같은 형태로 데이터를 다룬 적이 있어서
이전보다는 좀더 빨리 응용할 수 있었다.
f' ' 저 공백 안에 숫자 값이 들어갈 땐 {}을 써서 넣어주고 string은 그냥 쓰면 된다.
전보다 코드 효율이 좋아졌다. 굿.
✅ 코드
i = 0
while True :
i += 1
n0 = int(input())
if n0 == 0 :
break
else :
n1 = 3*n0
if n1 % 2 == 0 :
n2 = n1 // 2
else :
n2 = (n1+1) // 2
n3 = 3*n2
n4 = n3 // 9
if n1 % 2 == 0 :
print(f'{i}. even {n4}')
elif n1 % 2 != 0 :
print(f'{i}. odd {n4}')
728x90
'🥧 Python > ⚙️ 코딩테스트' 카테고리의 다른 글
[백준-Python] 5522번: 카드 게임 (0) | 2023.03.07 |
---|---|
[백준-Python] 5217번: 쌍의 합 (0) | 2023.03.07 |
[백준-Python] 4562번: No Brainer (0) | 2023.03.06 |
[백준-Python] 4101번: 크냐? (0) | 2023.03.06 |
[백준-Python] 2753번: 윤년 (0) | 2023.03.06 |