Notice
Recent Posts
Recent Comments
Link
jyamethyst21 님의 블로그
백준 25238번 - '가희와 방어율 무시' (PYTHON 풀이) 본문
문제:

방어율과 방무가 주어질 때, 유저가 몬스터에게 데미지를 줄 수 있는지 없는지 알려주는 문제이다.
이때 유저가 체감하는 몬스터의 방어율 수치가 100보다 크거나 같으면 몬스터에게 데미지를 줄 수 없고 이 경우 0을, 그렇지 않으면 1을 출력해야한다.
풀이:
a,b = map(int,input().split())
if a * (100 - b) >= 10000:
print(0)
else:
print(1)
우선 정답 코드는 다음과 같다.
a,b = map(int,input().split())
re = a * (1 - (0.01 * b))
if re >= 100:
print(0)
else:
print(1)
필자는 처음에 위 코드와 같이 작성했는데 자꾸 틀리다고 떠서 뭐가 문제인지 찾아보았다.
0.01 때문에 실수형으로 계산이 되는데 이게 문제가 될 수도 있다고 해서 int형으로 풀 수 있는 방법을 고민했다.
그래서 결과적으로 할인가를 구하는 공식을 정리했다.
가격 * (100 - 할인율) / 100 (%)
문제에서는 위 공식이 100보다 크거나 같은지를 봐야하므로 정리하면 다음과 같다.
가격 * (100 - 할인율) / 100 >= 100
-> 가격 * (100 - 할인율) >= 10000 (좌변의 100을 없애기 위해 양변에 100씩 곱함)
최종적으로 '가격 * (100 - 할인율) >= 10000' 와 같은 공식이 도출되고 이를 입력값 a,b를 활용해서 작성하면 다음과 같다.
'a * (100 - b) >= 10000'
그래서 만약 이 값이 10000을 넘거나 같으면 (100을 넘거나 같으면) 0을, 그렇지 않으면 1을 출력하도록 로직을 작성하면 된다!
'CODING 💻' 카테고리의 다른 글
| 백준 17206번 - '준석이의 수학 숙제' (PYTHON 풀이) (0) | 2026.02.21 |
|---|---|
| 백준 11023번 - '더하기 3' (PYTHON 풀이) (0) | 2026.02.20 |
| 백준 32642번 - '당구 좀 치자 제발' (PYTHON 풀이) (0) | 2026.02.18 |
| 백준 30957번 - '빅데이터 vs 정보보호 vs 인공지능' (PYTHON 풀이) (0) | 2026.02.17 |
| 백준 32297번 - '문자열을 만들어요' (PYTHON 풀이) (0) | 2026.02.16 |
