강승현입니다
    • 홈
    • 태그
    • 방명록

    카테고리

    • 전체 글 (120) N
      • 후기 (38)
        • 경험 (15)
        • SSAFY (9)
        • 코딩테스트 (3)
        • 넥스터즈 (6)
        • 회고 (5)
      • Degrees (2)
      • Tech (1) N
        • Java&Spring (13)
        • IDE (1)
        • Node.js (2)
        • Git (3)
        • Server (3)
        • DevOps (0)
        • OS (3)
        • Javascript (1)
        • C,C++ (1)
        • Python (2)
        • 알고리즘 (1)
        • 트러블슈팅 (1)
      • OnlineJudge (45)
      • 정보전달 (2)
    OnlineJudge

    Educational Codeforces Round 100 (Rated for Div. 2) A.Dungeon

    CODe_byCODe_·2020. 12. 18. 02:36

     

    문제로 이동

     

    Problem - A - Codeforces

     

    codeforces.com


    목차

      문제 설명

      몬스터 세 마리의 체력이 주어진다. 이 몬스터를 죽이기 위해서(체력을 모두 0으로 만든다) 공격을 해야한다.

      공격은 단일공격 6회, 전체공격 1회를 반복할 수 있다.

      즉, 1~6회 공격은 한 마리에게만 데미지가 들어가고, 7회째 공격은 세 몬스터에게 데미지가 들어간다.

      몬스터가 모두 동시에 죽는다면 YES를 그렇지 않으면 NO를 출력한다.

       

      예시 설명

      예시 입력

      위 그림처럼 3, 2, 4라는 체력을 가진 몬스터가 주어졌다고 생각해보자.

      최종적으로 7회차 공격(전체 공격)때 세 몬스터의 체력이 동시에 0이 되면서 죽이기에 성공한다.

      출력은 YES가 될 것이다.

       

      주의해야할 점

      위 예시는 7회차만에 공격이 끝난다. 하지만 아래의 경우를 보자.

      14회 공격

      한 가지 알 수 있는 점은 세 수(체력)가 최소한의 체력값을 가져야 한다는 점이다.

      위 예제와 달리 두 번째 몬스터의 체력을 1, 세 번째 몬스터의 체력을 15라 가정해 보자.

      7회차 공격에 두 번째 몬스터의 체력이 0이 되면서 실패하게 된다.

       

      규칙

      여러 예시들을 보며 몇 가지 사실을 알 수 있었다.

      1. 세 수의 합은 반드시 9의 배수다.

      2. 각 수가 최소한의 크기를 가져야 한다.

      여기서 최소한의 크기는 세 수의 합을 9로 나눈 몫이다.

       

      s = a+b+c
      k = s//9
      if s%9==0 and a>=k and b>=k and c>=k:
      	print('YES')
      else:
      	print('NO')

      소스코드

      반응형
      저작자표시 비영리 변경금지 (새창열림)
      'OnlineJudge' 카테고리의 다른 글
      • 백준 2042 구간 합 구하기/세그먼트트리
      • Educational Codeforces Round 100 (Rated for Div. 2) B. Find The Array 풀이
      • 백준 5676 음주코딩/세그먼트트리
      • Educational Codeforces Round 88 (Rated for Div. 2) A - Berland Poker 풀이
      CODe_
      CODe_
      개발과 관련된 다양한 정보를 몰입감있게 전달합니다.
      최신 글

      티스토리툴바