✅ 오늘 한 것
알고리즘 문제
✏️ 오늘 배운 점
def solution(sizes):
max_w = 0
max_h = 0
for w, h in sizes:
w, h = max(w, h), min(w, h)
max_w = max(max_w, w)
max_h = max(max_h, h)
return max_w * max_h
명함 지갑 문제를 통해 각 명함의 가로·세로 중 더 긴 쪽을 가로로, 짧은 쪽을 세로로 통일해 비교해야 한다는 점을 깨달았다.
def solution(arr, flag):
result = []
for i in range(len(arr)):
if flag[i] == True:
for j in range(arr[i]*2):
result.append(arr[i])
if flag[i] == False:
for j in range(arr[i]):
result.pop()
return result
처음에는 마지막 요소를 제거할 때 remove(result[-1])를 사용하였으나, 이는 맨 끝 요소를 제거하는 것이 확정이 아닌 마지막 요소와 동일한 숫자를 가진 첫번째 요소를 제거하기에 예상한 결과가 다르게 나타날 수 있다는 것을 알 수 있었다. 그로 인해 구글링을 통해 무조건 마지막 요소를 제거해주는 pop()을 활용하여 문제를 해결할 수 있었다.
def solution(num_list):
result = 0
for i in range(len(num_list)):
while num_list[i] > 1:
if num_list[i] % 2 == 0:
num_list[i] = num_list[i] / 2
result += 1
else:
num_list[i] = (num_list[i]-1) / 2
result += 1
return result
리스트 내 각 요소가 1이 될 때까지 반복 진행해야 하기에 while문을 사용하여 1이 될 때까지 반복한 횟수를 1씩 추가하여 각 요소를 전부 for문으로 돌린 이후에 전체 횟수를 반환하는 코드를 작성하였다.
✏️ 오늘의 핵심
실제 데이터 분석에서도 단위·방향·형식을 표준화해야만 올바른 결과를 얻을 수 있다
pop() : 리스트의 마지막 요소 제거
📌추가로 해야할 점
SQLD