2023. 3. 13. 18:40ㆍAlgorithm
1. 옷가게 할인 받기
(문제 설명, 제한사항, 입출력 예)
10만원 이상 사면 5%, 30만원 이상 사면 10%, 50만원 이상 사면 20%를 할인해주는 옷가게가 있다.
구매한 옷의 가격이 주어질 때, 할인을 적용하여 지불해야 할 금액을 구하라는 문제이다.
(내가 생각한 풀이 과정)
가격에 따라 if-elif-else문을 이용하여 조건을 나누면 쉽게 답을 구할 수 있다고 생각했다.
(코드)
💡 내 코드
def solution(price):
if price < 100000:
return price
elif price >= 100000 and price < 300000:
return int(price*0.95)
elif price >= 300000 and price < 500000:
return int(price*0.9)
else:
return int(price*0.8)
💡 다른 사람의 풀이 코드
할인율을 별도의 딕셔너리에 저장한다. 이 딕셔너리의 키는 할인이 적용되는 경계선의 가격, 값은 할인율이 되며,
경곗값에 따라 price 입력값과 할인율을 곱해주면 답을 구할 수 있을 것이다.
def solution(price):
discount_rates = {500000: 0.8, 300000: 0.9, 100000: 0.95, 0: 1}
for discount_price, discount_rate in discount_rates.items():
if price >= discount_price:
return int(price * discount_rate)
2. 아이스 아메리카노
(문제 설명, 제한사항, 입출력 예)
한 잔에 5,500원 하는 아이스 아메리카노가 있을 때,
주어진 돈 money로 최대 마실 수 있는 아메리카노 잔 수와 남는 돈을 담은 배열을 반환하라는 문제이다.
(내가 생각한 풀이 과정)
나누기 연산자 "//"와 나머지 연산자 "%"를 사용하면 쉽게 해결할 수 있는 문제이다.
(코드)
💡 내 코드
def solution(money):
return [money//5500, money%5500]
3. 나이 출력
(문제 설명, 제한사항, 입출력 예)
나이 age가 주어질 때 2022년 기준으로 몇 년도에 태어났는지 구할 수 있도록 하라는 문제이다.
(내가 생각한 풀이 과정)
2022에서 나이를 뺀 후, 태어나자마자 한 살이라는 점을 감안해 +1을 해주면 될 것이라 생각했다.
(코드)
💡 내 코드
def solution(age):
return 2022-age+1
4. 배열 뒤집기
(문제 설명, 제한사항, 입출력 예)
정수가 들어있는 배열을 뒤집으라는 문제이다.
(내가 생각한 풀이 과정)
파이썬 리스트 슬라이싱의 세 번째 원소는 간격(step)을 의미한다. 이 원소를 -1로 설정하면 리스트를 뒤집을 수 있다.
(코드)
💡 내 코드
def solution(num_list):
return num_list[::-1]
'Algorithm' 카테고리의 다른 글
[Programmers/Lv. 0] 코딩테스트 입문 Day 7 - 문자열, 조건문, 수학, 반복문 (Python) (3) | 2023.03.15 |
---|---|
[Programmers/Lv. 0] 코딩테스트 입문 Day 6 - 문자열, 반복문, 출력, 배열, 조건문 (Python) (1) | 2023.03.13 |
[Programmers/Lv. 0] 코딩테스트 입문 Day 4 - 수학, 배열 (Python) (0) | 2023.03.11 |
[Programmers/Lv. 0] 코딩테스트 입문 Day 3 - 사칙연산, 배열, 수학 (Python) (0) | 2023.02.16 |
[Programmers/Lv. 0] 코딩테스트 입문 Day 2 - 사칙연산, 조건문, 배열 (Python) (0) | 2023.02.15 |