21.4.26
알고리즘 16일차
프로젝트.. 기업협업.. 너무 정신없었다. 이제는 좀 알고리즘도 풀어보고 그래야겠다.
1. 문제
주식 가격 배열에서 가장 이득이 높게 파는 법
2. 접근 방법
- 가장 작은 배열의 요소와 순서상 그 배열보다 먼 것에 있는 것을 계산(뺄셈)
- 이렇게 풀어야 무조건 작은 수와 순서 없이 계산되지 않음
- 조건을 걸었기 때문에 작은 수가 있다 하더라도 순서상 계속 작아지면(작은수가 가장 마지막에 있다면) 성사 되지 않음.
3. 코드
def maxProfit(prices):
min_price = min(prices)
result = 0
for i in range(len(prices)-1):
# 배열에 따른 반복문
if prices[i] > prices[i+1]:
continue
# 배열 상 순서가 뒤에꺼보다 앞에꺼가 더 크면 넘김
if prices[i] < prices[i+1]:
result = prices[i+1] - min_price
return result
print(maxProfit([7,1,5,3,6,4]))
1. 문제
같은 알파벳의 모음끼리 모아서 리스트 만들어보기
2. 접근 방법
- 처음에 배열로만 접근 : 배열을 해체한 쇼만 함
- 참고 코드 보고 확인한 결과 : 쌍을 이룬다, 튜플을 사용한다.
3. 코드
def groupAnagrams(strs):
dic = {}
# why? : 쌍을 이룬다. 키 : 값으로 생각하는 발상을 했어야 했다. 한 수 배웠다.
for i in sorted(strs):
key = tuple(sorted(i))
# why tuple : sorted해서 정렬한 후 알파벳 순서를 통일 시키기 위해서
dic[key] = dic.get(key, []) + [i]
# dict.get() 메서드는 특정 키에 대한 값을 리턴
return list(dic.values())
Author And Source
이 문제에 관하여(21.4.26), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sinichy7/21.4.26알고리즘저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)