등차수열 만들기
풀이
등차수열 문제이다.
문제에 안적힌 내용들이 있는데, 아래 먼저 푼 사람들의 내용을 보고 알았다.
주어지는 a,b,c의 순서는 바꿀 필요없다.
0의 출력은 0이 아니라 0.0으로 되어야한다.
테스트케이스중 0,2,1 의 경우 답이 1.5인데 이유는 2에서 1.5를 빼면 0,0.5,1 로 0.5를 값으로 하는 등차수열이 되기 때문이다.
또한 이 케이스에서 볼 수 있듯이 순서를 바꿔도 된다면 답은 0이 되어야하는데 그렇지가 않음을 확인할 수 있다.
난 아래처럼 풀었다.
a,b,c 가 있을 때, c-b = b-a 가 되어야하고, 또한 이때 이게 성립하지 않으면 a,b,c중에 가장 작은 더하거나 뺄 x값을 정해줘야하는 문제이다.
그래서 solution이라는 함수를 생성하고
테스트 케이스를 이것저것 해보니
(b-a) - (c-b) 의 값을 2로 나눈 값이 되었다.
abs를 작성해준 이유는 답에 음수가 없어서이다.
def solution(a,b,c):
return (abs((b-a) - (c-b)) /2)
T = int(input())
for testcase in range(1, T+1):
a,b,c = map(int, input().split())
# y-x = z- y 음이 아닌 실수 x 세 정수에서 x만큼을 더하거나 빼기, 정확히 한번.
# 가장 작은 x
answer = solution(a,b,c)
print(f'#{testcase} {answer}')
'알고리즘 > SWEA' 카테고리의 다른 글
SWEA D3 14692. 통나무 자르기 (python) (1) | 2024.02.27 |
---|---|
SWEA D3 16002. 합성수 방정식 (python) (0) | 2024.02.26 |
SWEA D3 16910. 원 안의 점 (python) (0) | 2024.02.25 |
SWEA D3 17642. 최대 조작 횟수 (python) (1) | 2024.02.25 |
SWEA D3 16800. 구구단 걷기 (python) (1) | 2024.02.24 |