상세 컨텐츠

본문 제목

Temperatures

코딩테스트/알고리즘

by 2^7 2022. 9. 14. 10:15

본문

 

Coding Games and Programming Challenges to Code Better

CodinGame is a challenge-based training platform for programmers where you can play with the hottest programming topics. Solve games, code AI bots, learn from your peers, have fun.

www.codingame.com


가장 낮은 절대값을 찾아라

목표 : 여러 온도 중 0에 가장 가까운 온도를 찾아라

규칙

  • 두 숫자가 0과의 거리가 같은 경우 양수를 0에 가장 가까운 수로 정한다

게임의 입출력 값

  • 입력 받는 값
    • 각 턴 마다 아래와 같이 두 줄의 값을 입력 받는다
      • 첫번째 라인 : N (입력 받을 온도의 개수를 저장할 변수)
      • 두번째 라인 : N개의 온도를 담은 문자열(온도의 범위는 -273 ≤ N ≤ 5526 사이)     
  • 출력 해야 하는 값
    • 0에 가장 가까운 온도를 출력(절대값이 같은 경우 양수를 출력)
    • 입력 받은 온도가 없는 경우 0을 출력
  • 제약 사항
    • 0 ≤ N ≤ 10000

풀이

여러 온도 중 0에 가장 가까운 온도를 찾기 위해서는 0을 기준으로 가장 거리가 가까운 값을 찾으면 된다. 다시 말해서 절대값이 가장 작은 수를 찾고 만약 절대값이 같은 온도가 있는 경우 양수를 출력하면 된다.

즉, 반복문을 이용하여 여러 온도를 입력 받고, 조건문을 이용하여 절대값을 비교한 다음 더 작은 절대값을 발견하면 변수에 저장하고 그 값을 출력한다.

 

먼저 반복문을 이용하여 온도를 입력 받은 후 절대값을 비교하는 abs함수를 이용하여 입력 받은 값을 비교한다

# 절대값을 구하는 abs 함수

def abs(value):
	if value >= 0:
    	return value
    else:
    	return -value​

그리고 두 수의 절대값이 같을 때 새로 입력 받은 값이 양수인지 확인하여 양수 값을 출력한다.(t가 음수인 경우 min_t값을 변경할 필요가 없으므로 양수인지만 확인 한다.) 마지막으로 아무것도 입력받지 않는 경우 0을 출력하는 코드를 추가하여 작성한다.


코드

n = int(input())  

if n == 0:         #입력받은 온도가 없으면 0을 출력
    print("0")
else:              
    min_t = 5527   #온도의 범위가 최대 5526으로 주어질 수 있기 때문
    for i in input().split():
        t = int(i)
        if abs(t) < abs(min_t): #절댁값이 작은 값을 저장
            min_t = t
        if abs(t) == abs(min_t): #절대값이 같은 경우 양수의 값을 저장
            if t > 0 :
                min_t = t
    print(min_t)
728x90

'코딩테스트 > 알고리즘' 카테고리의 다른 글

Stock exchange losses  (1) 2022.09.19
The Descent  (1) 2022.09.02

관련글 더보기