프로그래밍 예제인데.. 조건문없이 조건 만족 어떻게하죠...
해당문제입니다
조건 반복없이 짝수홀수를 어떻게구분하며
단순히 연산자를 통해 프로그램을 어떻게 구성하죠..
그리드 알고리즘 방식으로 풀어보려했으나
도저히 생각이안나네요ㅠㅠㅠ
언어는 파이썬 입니다 ㅠㅠ
도와주세요 ㅠㅠ
안녕하세요.
간단하게...
날짜의 차이를 이용하여
주말 갯수와 평일 갯수를 빼서 사칙 연산을 하면 될 것 같습니다.
평일 갯수 300원, 토요일갯수 500원, 일요일갯수 * 700원, 201일이상부터는 할인 200원 해서
곱하기 더하기 빼기 하시면 될 것 같네요.
DATETIME이나 날짜 관련 함수 사용하여 충분히 가능할 것으로 보입니다.
결과부터 말씀드리자면 반복, 조건없이 저문제를 풀려면 진짜 하드코딩을 하는 것밖에 방법이 없을 겁니다.
그리드알고리즘을 쓴다하더라도 기본적으로 반복문이 들어가고 필요에따라 조건도 들어갑니다.
차라리 저문제를 현실적으로 바꾸고 해당 계산기를 만들어보시는게 어떨까요? 그러시는게 공부하시는데 도움이 많이 될 것 같습니다. 필요한 모듈도 datetime 이나 timedelta정도만 쓰셔도 무난하게 만드실 수 있을겁니다.
도움이 못되드려 죄송하네요. 열공 하세요!
짝수달 홀수달을 계산하려고 하신걸로 보입니다.
조건문 없이 날짜를 계산하려고 하신다면 간단하게 모듈러 연산을 하면 될 것 같아요.
day = 31 - (month % 2)
이렇게 하면 짝수달은 31일, 홀수달은 30일이 될것 같아요
저도 지나가면서 간단하게 봐서 이정도만 답변 드릴 수 있겠네요.
좀 더 다른접근이 필요한 문제지 않을까 싶네요.
def parking_fee(s_month, s_day, e_month, e_day): cal_day = (e_month - s_month) * (s_month % 2 + 30) + e_day - s_day + 1 over200 = cal_day // 200
over200_fee = over200 * ((cal_day - 200) // 7 * 1300 + (cal_day - 200) % 7 * 100)
return over200_fee + cal_day // 7 * 2700 + cal_day % 7 * 300
제가 제시한 풀이가 정답이 아닐 수도 있으니 참고만 하시기 바랍니다.
조건.반복없이 짝수, 홀수를 구하는 법은 간단히 2로 나누었을 때 나누어 떨어지면 짝수, 아니면 홀수 이렇게 구분이 가능합니다.
cal_day는 주차일수를 먼저 구하고,
over200은 200일 초과여부를 체크,
over200_fee는 초과일수에 대한 주차요금입니다.