1. 회문은 순서를 거꾸로 읽어도 제대로 읽은 것과 같은 단어와 문장을 의미함. 회문을 판별할 수 있는 함수를 리스트 슬라이싱을 활용해서 만드세요
ex) rumur
질문 ex) string 변수에 null(None)이 올 수 있는지, null이 왔을 때 함수의 리턴값이 무엇이 되어야 하는지
2. 특정 기간 동안의 가격 변화가 주어졌을 때, 그 주식 한 주를 한번 사고 팔아 얻을 수 있는 최대 수익을 계산하는 알고리즘을 만들어 보세요
질문 ex) 가격 변화가 어떻게 주어지는지 : 파이썬 리스트 형태로 원화 형태로 가격(숫자)이 주어짐 (0번 인덱스가 가장 이전 시간, 그리고 순차적으로 해서 마지막 인덱스가 가장 나중 시간)
output : [최대수익, 언제 샀는지, 언제 팔았는지에 대한 인덱스 번호]
def find_max_profit(stock_prices):
last_date = len(stock_prices)
max_profit = [0,0,0]
for buy_date in range(last_date-1):
for sell_date in range(buy_date+1, last_date):
profit = stock_prices[sell_date] - stock_prices[buy_date]
if profit > max_profit[0]:
max_profit = [profit, buy_date, sell_date]
return max_profit
stocks = [9000,8000,7000,8000,10000,5000,7000]
print(find_max_profit(stocks))
#고급 요구사항 들어간 코드
def find_max_profit(stock_prices):
last_date = len(stock_prices)
max_profit = [0,0,0]
min_price, min_date = stock_prices[0], 0
for current_date in range(1, last_date):
profit = stock_prices[current_date] - min_price
if profit > max_profit[0]:
max_profit = [profit, min_date, current_date]
if min_price > stock_prices[current_date]:
min_prices, min_date = stock_prices[current_date], current_date
return max_profit
stocks = [9000,8000,7000,8000,10000,5000,7000]
print(find_max_profit(stocks))
1. 하나의 문자열과 라인 길이를 나타내는 숫자가 주어지고, 라인 길이만큼 문자열을 자르고 줄바꿈 기호를 넣되 문자열 안에 스페이스가 있을 경우 보기 좋게 하기 위해, 스페이스가 있는 부분에서 줄바꿈 기호를 넣도록 코드를 구현하세요.
ex) "abc def ghdddddd fffff" => abc d / ef gf / ghdd보다 abc / def / gf / hdd가 낫다
질문 ex) string, max_line이 null(None)이 오는 경우가 있는지, null이 온다면 어떻게 처리를 할지, max_line도 마이너스나 0이 올 수 있는지, string, max_line의 최대값이 어떻게 되는지, 앞에 스페이스가 있다면?
def line_edit(string, max_line):
if string == None or max_line==None or len(string) < max_line:
return string
for index in range(max_line-1,0,-1):
if string[index] == '':
return string[:index] + '\n' + line_edit(string[index:].lstrip(), max_line)
return string[:max_line] + '\n' + line_edit(string[max_line:].lstrip(), max_line)
4. 하나의 배열이 주어지고, 해당 배열의 각 데이터는 숫자임. 배열 절반의 길이보다 큰 갯수만큼 특정 숫자가 들어가 있으면 해당 숫자, 그렇지 않으면 -1을 리턴하는 함수를 만들어라
ex) [2,7,7,7,1,7,2], 리턴값: 7
'두두의 알고리즘 > 문제' 카테고리의 다른 글
[힙] 백준 11286번 '절댓값 힙' (Python) (0) | 2022.10.05 |
---|---|
[기타] 릿코드 Easy 20 'Valid Parentheses' (Python) (0) | 2022.06.15 |
[기타] 릿코드 Easy 1816 'Truncate Sentence' (Python) (0) | 2022.06.15 |
[크루스칼] 백준 2887번 '행성 터널' (Python) (0) | 2022.04.12 |
[크루스칼] 난이도2, University of Ulm Local Contest '어두운 길' (Python) (0) | 2022.04.06 |