Skip to content

Smart farm crop growth monitoring

1. Problem

스마트팜에서는 여러 작물의 성장 상태를 측정하여 수확 시기를 관리한다.

각 작물의 현재 키와 목표 키가 주어졌을 때, 작물별 성장 상태를 판별하고 전체 작물의 성장 현황을 분석하는 프로그램을 작성하시오.

작물의 성장 상태는 다음 기준에 따라 결정한다.

  • 현재 키가 목표 키 이상이면 수확 가능
  • 현재 키가 목표 키의 80% 이상이고 목표 키 미만이면 수확 임박
  • 현재 키가 목표 키의 80% 미만이면 성장 중

다음 정보를 출력하시오.

  • 수확 가능한 작물의 수
  • 수확 임박인 작물의 수
  • 성장 중인 작물의 수
  • 목표 키까지 남은 높이가 가장 큰 작물의 번호

남은 높이는 목표 키에서 현재 키를 뺀 값이다. 남은 높이가 가장 큰 작물이 여러 개라면 가장 먼저 입력된 작물의 번호를 출력한다. 모든 작물이 수확 가능한 상태라면 마지막 줄에 0을 출력한다.

입력

첫째 줄에 작물의 수 (N)이 주어진다.

다음 (N)개의 줄에는 각 작물의 현재 키 (C)와 목표 키 (G)가 공백으로 구분되어 주어진다. 키의 단위는 cm이다.

출력

첫째 줄에 수확 가능한 작물의 수를 출력한다.

둘째 줄에 수확 임박인 작물의 수를 출력한다.

셋째 줄에 성장 중인 작물의 수를 출력한다.

넷째 줄에 목표 키까지 남은 높이가 가장 큰 작물의 번호를 출력한다. 모든 작물이 수확 가능한 상태라면 0을 출력한다.

제한사항

  • (1 \leq N \leq 100)
  • (1 \leq C \leq 500)
  • (1 \leq G \leq 500)
  • (C)는 현재 키, (G)는 목표 키이다.
  • 현재 키는 목표 키보다 클 수 있다.

2. Input example

Example 1

5
100 100
85 100
70 100
120 150
90 100

Example 2

4
110 100
120 100
105 100
130 120

3. Output example

3.1. Example 1

1
3
1
3

3.2. Example 2

4
0
0
0

4. Explanation

4.1. Example 1

각 작물의 성장 상태는 다음과 같다.

  • 1번: 현재 키가 목표 키와 같으므로 수확 가능
  • 2번: 목표 키의 85%이므로 수확 임박
  • 3번: 목표 키의 70%이므로 성장 중
  • 4번: 현재 키가 120cm이고 목표 키가 150cm이므로 수확 임박
  • 5번: 목표 키의 90%이므로 수확 임박

따라서 수확 가능한 작물은 1개, 수확 임박인 작물은 3개, 성장 중인 작물은 1개이다.

목표 키까지 남은 높이가 가장 큰 작물은 3번이다. 3번 작물은 목표 키까지 30cm가 남아 있다.

4.2. Example 2

모든 작물의 현재 키가 목표 키 이상이므로 수확 가능한 작물은 4개이다.

수확 임박인 작물과 성장 중인 작물은 없다. 모든 작물이 수확 가능한 상태이므로 마지막 줄에는 0을 출력한다.

5. Answer

n = int(input())

harvest_ready = 0
almost_ready = 0
growing = 0

max_gap = 0
max_gap_number = 0

for i in range(1, n + 1):
    current, goal = map(int, input().split())

    if current >= goal:
        harvest_ready += 1
    elif current * 100 >= goal * 80:
        almost_ready += 1
    else:
        growing += 1

    gap = goal - current

    if gap > max_gap:
        max_gap = gap
        max_gap_number = i

print(harvest_ready)
print(almost_ready)
print(growing)
print(max_gap_number)