✅ 오늘 한 것
알고리즘 문제
✏️ 오늘 배운 점
def solution(s):
eng_to_num = {'zero': '0', 'one': '1', 'two': '2', 'three': '3', 'four': '4', 'five': '5',
'six': '6', 'seven': '7', 'eight': '8', 'nine': '9'}
for key, value in eng_to_num.items():
s = s.replace(key, value)
return int(s)
딕셔너리에 영어로 되어있는 수가 있다면 숫자로 변형할 수 있도록 key와 value를 만들어두고 items()를 통해 key와 value값을 가져오고 replace를 통해 영문과 수가 섞인 단어를 숫자만 존재하는 단어로 존재할 수 있도록 바꾸는 코드를 작성하였다.
def solution(order):
sum = 0
for i in order:
if i in ["cafelatte", "icecafelatte", "cafelatteice", "hotcafelatte", "cafelattehot"]:
sum += 5000
elif i in ["americano", "anything", "iceamericano", "americanoice", "hotamericano", "americanohot"]:
sum += 4500
return sum
음료를 시킬 때 아메리카노의 경우 4500원, 카페라떼의 경우 5000원의 가격을 하고 있고, order에 들어온 메뉴를 확인하였을 때 각각의 가격을 더하면서 전체 가격을 반환하는 코드를 작성하였다.
다른 사람의 풀이를 보니 cafelatte와 americano만 있기에 cafelatte가 속해있다면 그냥 5000 추가에 else(americano 포함)일 경우 4500을 더하여 조금 더 가벼운 코드로 작성할 수 있는 것을 볼 수 있었다.
def solution(my_string, queries):
for q in queries:
my_string = my_string[:q[0]] + my_string[q[0]:q[1]+1][::-1] + my_string[q[1]+1:]
return my_string
처음에는 [q[0]:q[1]+1:-1]로 하니 코드가 제대로 구동하지 않아서 구글링을 통해 일반적으로 뒤집고자 하는 부분을 먼저 원래 상태로 소환하고 뒤집는 방식으로 진행하면 코드가 구동하는 것을 확인할 수 있었다.
def solution(chicken): #나의 풀이
sum = 0
while chicken >= 10:
sum += chicken // 10
chicken = (chicken // 10) + (chicken % 10)
return sum
def solution(chicken): #다른 사람의 풀이
return int(chicken*0.11111111111)
치킨 1마리당 쿠폰 1개씩 발급받을 수 있으며, 쿠폰 10개당 1마리를 얻을 수 있는 것을 통해 쿠폰을 통해 먹을 수 있는 치킨 수를 확인하는 코드를 작성하였다.
나는 처음 시킨 치킨 수에 비례해서 진행되는 쿠폰 치킨을 계산하여 sum에 넣고 이후 chicken 변수를 새로 변환하는 식으로 코드를 작성하였으나 다른 사람의 풀이를 살펴볼 때 계속해서 첫 치킨 수에서 계속해서 10%씩 쿠폰 치킨을 얻을 수 있기에 0.11111111111을 통해 쿠폰 치킨의 수를 반환할 수 있다는 것을 보고 그저 신기하다는 생각이 들었다.
✏️ 오늘의 핵심
딕셔너리와 replace()를 활용해 영어로 된 숫자를 실제 숫자로 변환하며, 문자열 치환 로직을 효율적으로 구성하는 방법을 익혔다.
리스트 내 포함 여부(in)를 활용하여 조건문을 간결하게 작성할 수 있었고, 코드의 불필요한 중복을 줄이는 중요성을 느꼈다.
문자열 슬라이싱과 역순([::-1])을 조합해 부분 문자열을 뒤집는 방법을 정확히 이해하게 되었다.
📌추가로 해야할 점
SQLD 시험 신청, SQLD 공부
'품질관리(QAQC) 데이터 부트캠프(본캠프)' 카테고리의 다른 글
| 본캠프_5주차(화)_TIL (0) | 2025.10.14 |
|---|---|
| 본캠프_5주차(월)_TIL (0) | 2025.10.13 |
| 연휴(토)_TIL (0) | 2025.10.11 |
| 연휴(금)_TIL (0) | 2025.10.10 |
| 연휴(목)_TIL (0) | 2025.10.09 |