[파이썬/python] 백준 - 11387 님 무기가 좀 나쁘시네여

2025. 7. 23. 12:06·알고리즘
반응형

문제

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


문제 설명

  1. 크리와 파부는 좋은 무기를 장착해서 전투력을 높이려고 한다. 전투력의 공식은 아래에 있다.
  2. 크리와 파부가 본인의 무기를 장착했을 때 각 능력치 수치, 그리고 무기를 장착했을 때 증가하는 각 수치가 입력으로 주어진다.
  3. 이 때 서로의 무기를 바꿔 꼈을 때 전투력이 증가하는지, 감소하는지, 변화가 없는지 검사한다.  

 


풀이

이 문제는 부동소수점 오차를 노려 오답을 유도하는 문제다.

 

부동소수점은 모든 실수를 정확하게 표현이 불가능하기 때문에 모든 수를 정수의 계산이 되도록 바꿔주어야 한다.

따라서 실수 계산이 포함된 모든 식에 동일한 수를 곱한 후 전투력을 계산했다. 

  1. 현재 무기를 장착한 상태의 크리와 파부의 전투력을 계산한다.
  2. 상대의 무기를 장착한 후 크리와 파부의 전투력을 계산한다.
  3. 전 후의 전투력을 비교하여 증감 상태를 검사한다. 

코드

import sys
input = sys.stdin.readline

cree = list(map(int,input().split()))
fabu = list(map(int,input().split()))
cree_w = list(map(int,input().split()))
fabu_w = list(map(int,input().split()))

def equip(p,w1,w2):
    for i in range(5):
        p[i]-=w1[i]
        p[i]+=w2[i]

def cal_cp(p):
    return p[0]*(100+p[1])*((10000-min(100*p[2],10000))+min(p[2],100)*p[3])*(100+p[4])

def print_res(prev,cur):
    if prev < cur:
        print('+')
    elif prev == cur:
        print('0')
    else:
        
        print('-')

prev_cree = cal_cp(cree)
equip(cree,cree_w,fabu_w)
cur_cree = cal_cp(cree)
print_res(prev_cree,cur_cree)

prev_fabu = cal_cp(fabu)
equip(fabu,fabu_w,cree_w)
cur_fabu = cal_cp(fabu)
print_res(prev_fabu,cur_fabu)

시간복잡도

  • 단순 계산식으로 풀이 가능한 문제이다.
  • 따라서 시간복잡도는 약 $O(1(상수))$로 볼 수 있다.
반응형

'알고리즘' 카테고리의 다른 글

[파이썬/python] 백준 - 17287 The Deeper, The Better  (1) 2025.07.25
[파이썬/python] 백준 - 2295 세 수의 합  (1) 2025.07.24
[파이썬/python] 백준 - 11562 백양로 브레이크  (0) 2025.07.22
[파이썬/python] 백준 - 18430 무기 공학  (0) 2025.07.21
[파이썬/python] 백준 - 14651 걷다보니 신천역 삼 (Large)  (0) 2025.07.20
'알고리즘' 카테고리의 다른 글
  • [파이썬/python] 백준 - 17287 The Deeper, The Better
  • [파이썬/python] 백준 - 2295 세 수의 합
  • [파이썬/python] 백준 - 11562 백양로 브레이크
  • [파이썬/python] 백준 - 18430 무기 공학
개골개굴
개골개굴
굶고 코딩하기
  • 개골개굴
    밥스토리
    개골개굴
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (144)
      • 알고리즘 (124)
      • Java (2)
      • 자기개발 (18)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java
    springboot
    백준
    async
    인프런
    작심삼일 챌린지
    python
    SMTP
    컴퓨터구조
    completablefuture
    파이썬
    알고리즘
    컴퓨터 구조
    OS
    Redis
  • 최근 댓글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
개골개굴
[파이썬/python] 백준 - 11387 님 무기가 좀 나쁘시네여
상단으로

티스토리툴바