3649 로봇 프로젝트

정민용·2023년 2월 14일

백준

목록 보기
54/286

문제

상근이와 선영이는 학교 숙제로 로봇을 만들고 있다. 로봇을 만들던 중에 구멍을 막을 두 레고 조각이 필요하다는 것을 깨달았다.

구멍의 너비는 x 센티미터이고, 구멍에 넣을 두 조각의 길이의 합은 구멍의 너비와 정확하게 일치해야 한다. 정확하게 일치하지 않으면, 프로젝트 시연을 할 때 로봇은 부수어질 것이고 상근이와 선영이는 F를 받게 된다. 구멍은 항상 두 조각으로 막아야 한다.

지난밤, 상근이와 선영이는 물리 실험실에 들어가서 레고 조각의 크기를 모두 정확하게 재고 돌아왔다. 구멍을 완벽하게 막을 수 있는 두 조각을 구하는 프로그램을 작성하시오.

import sys

input = lambda: sys.stdin.readline().strip()

# 1cm == 10**7nm
while True:
  try:
    x = int(input()) * (10**7)
    n = int(input())
    arr = []
    for _ in range(n):
      arr.append(int(input()))
    arr.sort()

    start = 0
    end = n - 1
    check = True
    while start < end:
      num = arr[start] + arr[end]
      if num == x:
        check = False
        print('yes %d %d' % (arr[start], arr[end]))
        break
      else:
        if num > x:
          end -= 1
        else:
          start += 1
    if check:
      print('danger')

  except:
    break
  • 테스트 케이스가 계속 입력되기 때문에 try except 를 사용해야 한다.

백준 3649 로봇 프로젝트

0개의 댓글