반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


1. [백준 알고리즘] 백준 2991번 사나운 개 파이썬(Python)

1) 문제번호 : 2991번

 

2) 문제 출처

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

 

2991번: 사나운 개

창영 마을의 우체부, 우유배달원, 신문배달원은 상근이네 집에 가는 것을 매우 싫어한다. 그 이유는 상근이네 집에는 사나운 개 두 마리가 지키고 있기 때문이다. 하지만, 그들은 이 개의 행동

www.acmicpc.net

 

2. 문제

창영 마을의 우체부, 우유배달원, 신문배달원은 상근이네 집에 가는 것을 매우 싫어한다. 그 이유는 상근이네 집에는 사나운 개 두 마리가 지키고 있기 때문이다. 하지만, 그들은 이 개의 행동이 예측 가능하다는 것을 모르고 있다.

매일 아침, 개 한마리는 A분동안 공격적이고, B분동안 조용히 쉬고 있다. 또다른 개는 C분동안 공격적이고, D분동안 조용히 쉰다. 두 개는 이 행동을 계속해서 연속적으로 반복한다.

우체부, 신문배달원, 우유배달원의 도착 시간이 주어졌을 때, 개 몇 마리에게 공격을 받는지 알아내는 프로그램을 작성하시오.

 

 

3. 제약사항

 

4. 입력

첫째 줄에 A, B, C, D가 주어진다.

둘째 줄에는 P, M, N가 주어진다. P는 우체부의 도착 시간, M은 우유배달원의 도착 시간, N은 신문배달원의 도착 시간이다. 매일 아침이 시작하는 시간을 0이라고 한다. 도착 시간은 아침이 시작한 후 지난 시간이다. 예를 들어, P가 3이면, 우체부는 아침이 시작하고 세 번째 분이 진행되는 중에 도착했다는 뜻이다.

모든 수는 1보다 크거나 같고, 999보다 작거나 같은 정수이다.

 

 

5. 출력

첫째 줄에는 우체부, 둘째 줄에는 우유배달원, 셋째 줄에는 신문배달원이 개 몇 마리에게 공격 받는지 출력한다.

 

 

6. 풀이

- 화나는 시간이랑 쉬는 시간이랑 합한 값으로 사람들이 오는 시간을 나눈 나머지가 A 또는 C보다 작거나 같으면 공격당하는 횟수를 1 증가시킨다.

 

7. 소스 코드

import sys
input=sys.stdin.readline

A, B, C, D = map(int, input().split())
people = list(map(int, input().split()))

for i in people :
    res = 0
    if 0 < i % (A+B) <= A : res += 1
    if 0 < i % (C+D) <= C : res += 1

    print(res)

 


 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기