개발조각

[파이썬 실습] 심화 문제_겹치는 구간의 길이 본문

엘리스 AI 트랙🐇/[AI 5기] 연습 문제집_파이썬 실습

[파이썬 실습] 심화 문제_겹치는 구간의 길이

개발조각 2022. 6. 5. 23:45
728x90
반응형

겹치는 구간의 길이

수직선 위에 두 선분 A와 B가 있습니다.

각 선분은 중심의 위치와 선분의 길이 두 개의 수로 표현할 수 있습니다.

이때 A와 B의 겹치는 구간의 길이를 구하는 프로그램을 지시사항에 따라 작성하세요.

 

지시사항

각 선분은 (중심점,길이)로 다음과 같이 표현합니다.

(2,4)
Copy

위 선분은 중심점의 위치가 2이며 길이가 4인 선분을 의미합니다.

그림으로 나타내면 다음과 같이 나타납니다.

즉, 이 선분은 0부터 4 까지의 선분이라고도 할 수 있습니다.

이렇게 표현된 두 선분의 정보를 입력받아 겹치는 부분의 길이를 구하는 프로그램을 작성하세요

  1. 사용자로부터 두 선분을 중심점,길이의 형식으로 입력받습니다.
2,4
4,8
Copy
  1. 첫번째 선분은 중심점이 2이며 길이가 4인 선분으로 0에서 4까지의 선분입니다. 두번째 선분은 중심점이 4이며 길이가 8인 선분으로 0부터 8까지의 선분입니다.
  2. 두 선분이 겹치는 구간은 0부터 4까지이므로 겹치는 구간의 길이는 4입니다. 따라서 4를 출력합니다.
4
Copy
  1. 만약 두 선분이 겹치지 않는다면 0을 출력합니다.

주의사항

채점을 위해 출력값은 int로 형변환하여 출력하세요 (선분의 길이는 짝수로 구성했습니다)


정답

# a = input()
# b = input()

# 지시사항을 보고 프로그램을 구현하세요
a = list(map(int, input().split(',')))
b = list(map(int, input().split(',')))

start = max(a[0]-a[1]/2, b[0]-b[1]/2)
end = min(a[0]+a[1]/2, b[0]+b[1]/2)

# print(start, end)
if end-start > 0:print(int(end-start))
else:print(0)

a = input()

b = input()

위와 같은 기본적으로 쓰인 입력값을 안쓰고 새롭게 a, b의 입력값을 만들어서 풀었습니다.

728x90
반응형
Comments