관리 메뉴

솜씨좋은장씨

[BaekJoon] 6763번 : Speed fines are not fine! (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 6763번 : Speed fines are not fine! (Python)

솜씨좋은장씨 2022. 11. 16. 12:46
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 Speed fines are not fine! 입니다.

 

6763번: Speed fines are not fine!

Many communities now have “radar” signs that tell drivers what their speed is, in the hope that they will slow down. You will output a message for a “radar” sign. The message will display information to a driver based on his/her speed according to

www.acmicpc.net

🧑🏻‍💻 문제 풀이

제한 속도와 현재 속도를 입력받았을때

현재 속도가 제한 속도를 위반하였는지

위반하였다면 내야하는 벌금은 얼마인지 구하는 단순 구현 문제입니다.

def check_is_over_speed(limit, curr_speed):
    is_over_speed = False
    over_speed = 0
    
    if limit < curr_speed:
        is_over_speed = True
        over_speed = curr_speed - limit
        
    return is_over_speed, over_speed

먼저 제한 속도를 위반하였는지 확인하는 함수를 하나 만들어주었습니다.

이 함수에 제한 속도와 현재 속도를 넣어주면

속도를 위반 하였는지 위반한 속도는 얼마나 되는지 구하여 return 합니다.

def calculate_fine(over_speed):
    if 1 <= over_speed <= 20:
        fine = 100
    elif 21 <= over_speed <= 30:
        fine = 270
    elif 31 <= over_speed:
        fine = 500
        
    return fine

제한 속도보다 얼마나 위반하였는지 넣어주면 내야하는 요금은 얼마인지 구하는 함수를 만들어주었습니다.

def speed_fines_are_not_fine(limit, curr_speed):
    answer = "Congratulations, you are within the speed limit!"
    
    is_over_speed, over_speed = check_is_over_speed(
        limit=limit, curr_speed=curr_speed
    )
    
    if is_over_speed:
        fine = calculate_fine(
            over_speed=over_speed
        )
        
        answer = f"You are speeding and your fine is ${fine}."
        
    return answer

이 두 함수를 활용하여 정답을 출력하도록 하는 함수를 만들어주면 끝! 입니다.

 

전체 코드는 아래를 참고해주세요.

🧑🏻‍💻 코드 ( Solution )

def check_is_over_speed(limit, curr_speed):
    is_over_speed = False
    over_speed = 0
    
    if limit < curr_speed:
        is_over_speed = True
        over_speed = curr_speed - limit
        
    return is_over_speed, over_speed


def calculate_fine(over_speed):
    if 1 <= over_speed <= 20:
        fine = 100
    elif 21 <= over_speed <= 30:
        fine = 270
    elif 31 <= over_speed:
        fine = 500
        
    return fine


def speed_fines_are_not_fine(limit, curr_speed):
    answer = "Congratulations, you are within the speed limit!"
    
    is_over_speed, over_speed = check_is_over_speed(
        limit=limit, curr_speed=curr_speed
    )
    
    if is_over_speed:
        fine = calculate_fine(
            over_speed=over_speed
        )
        
        answer = f"You are speeding and your fine is ${fine}."
        
    return answer


if __name__ == "__main__":
    limit = int(input())
    curr_speed = int(input())
    
    print(speed_fines_are_not_fine(limit=limit, curr_speed=curr_speed))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments