Skip to content

Instantly share code, notes, and snippets.

View DongguemYoo's full-sized avatar

DongGeumYoo DongguemYoo

View GitHub Profile
@DongguemYoo
DongguemYoo / gist:6c052879698064d55149bf1d8a02f774
Created February 24, 2021 05:13
[코딩테스트]전화번호 목록(feat 해쉬)
### 내풀이 ###
## 길이를 측정해서 길이만큼만 비교##
def solution(phone_book):
answer = True
dict = {}
for item in phone_book:
dict.update({item:item})
for item in dict.keys():
@DongguemYoo
DongguemYoo / 출근하는 방법2.py
Created July 12, 2020 06:03
[코드잇] 출근하는 방법 2 python
실습과제
영훈이는 출근할 때 계단을 통해 사무실로 가는데요. 급할 때는 두 계단씩 올라가고 여유 있을 때는 한 계단씩 올라갑니다. 결국 계단을 오를 수 있는 모든 방법으로 계단을 올라갔는데요.
이제 다르게 계단을 올라갈 수는 없을까 고민하던 영훈이는 특이한 방법으로 계단을 오르려고 합니다.
가령 계단을 한 번에 1, 2, 4 칸씩 올라가 보는 건데요. 예를 들어서 계단을 4개를 올라가야 되면:
@DongguemYoo
DongguemYoo / 삼송전자 주식 분석.py
Last active July 11, 2020 05:16
[코드잇] 삼송전자 주식 분석
실습과제
태호는 주식 분석이 취미입니다.
요즘 제일 핫한 종목은 삼송전자인데요. 삼송전자의 주식을 딱 한 번 사고 팔았다면 최대 얼마의 수익이 가능했을지 궁금합니다. 그것을 계산해 주는 O(n)O(n) 함수 max_profit을 작성하세요.
max_profit은 파라미터로 일별 주식 가격이 들어 있는 리스트 stock_prices를 받고 최대 수익을 리턴합니다. 주식은 딱 한 번만 사고 한 번만 팝니다. 그리고 사는 당일에 팔 수는 없습니다.
@DongguemYoo
DongguemYoo / 빠르게 산 오르기.py
Created July 5, 2020 08:13
[코드잇] 알고리즘 연습 level 1 03 빠르게 산 오르기 python
실습과제
신입 사원 장그래는 마부장님을 따라 등산을 가게 되었습니다.
탈수를 방지하기 위해서 1km당 1L의 물을 반드시 마셔야 하는데요. 다행히 등산길 곳곳에는 물통을 채울 수 있는 약수터가 마련되어 있습니다. 다만 매번 줄서 기다려야 한다는 번거로움이 있기 때문에, 시간을 아끼기 위해서는 최대한 적은 약수터를 들르고 싶습니다.
함수 select_stops는 파라미터로 약수터 위치 리스트 water_stops와 물통 용량 capacity를 받고, 장그래가 들를 약수터 위치 리스트를 리턴합니다. 앞서 설명한 대로 약수터는 최대한 적게 들러야겠죠.
@DongguemYoo
DongguemYoo / 거듭 제곱 빠르게 계산하기.py
Last active July 5, 2020 05:25
[코드잇] 알고리즘 연습 level1 02. 거듭 제곱 빠르게 계산하기 Python
실습과제
거듭 제곱을 계산하는 함수 power를 작성하고 싶습니다. power는 파라미터로 자연수 x와 자연수 y를 받고, x^yx
y
를 리턴합니다.
가장 쉽게 생각할 수 있는 방법은 반복문으로 단순하게 xx를 yy번 곱해 주는 방법입니다.
@DongguemYoo
DongguemYoo / 투자의 귀재 규식이.py
Created July 5, 2020 05:08
[코드잇] 알고리즘 연습 level 1 투자의 귀재 규식이 1 (Brute Force 방법)
실습과제
규식이는 친구들 사이에서 투자의 귀재로 알려져 있습니다. 페이수북과 인수타그램에 자신의 성과를 과시하기 때문인데요. 사실 규식이가 그 정도의 실력자는 아닙니다. 성과가 좋을 때에만 SNS에 공유해서 그렇게 비춰질 뿐이죠.
계속해서 멋진 모습을 보여주기 위해, 특정 기간 중 수익이 가장 큰 구간을 찾아내는 함수 sublist_max를 작성해 보려고 합니다.
Brute Force 방법을 이용해서 이 문제를 한 번 풀어봅시다!
@DongguemYoo
DongguemYoo / 수강신청.py
Created July 5, 2020 04:59
[코드잇] 수강신청 python
실습과제
이번 학기 코드잇 대학교의 수업 리스트가 나왔습니다.
[(4, 7), (2, 5), (1, 3), (8, 10), (5, 9), (2, 6), (13, 16), (9, 11), (1, 8)]
리스트에 담겨있는 튜플들은 각각 하나의 수업을 나타냅니다. 각 튜플의 0번째 항목은 해당 수업의 시작 교시, 그리고 1 번 항목은 해당 수업이 끝나는 교시입니다. 예를 들어서 0번 인덱스에 있는 튜플값은 (4, 7)이니까, 해당 수업은 4교시에 시작해서 7교시에 끝나는 거죠.
(2, 5)를 듣는다고 가정합시다. (4, 7) 수업은 (2, 5)가 끝나기 전에 시작하기 때문에, 두 수업은 같이 들을 수 없습니다. 반면, 수업 (1, 3)과 (4, 7)은 시간이 겹치지 않기 때문에 동시에 들을 수 있습니다.
@DongguemYoo
DongguemYoo / 지각 벌금 적게 내기.py
Created July 5, 2020 04:42
[코드잇] 지각 벌금 적게 내기 pyhton
실습과제
익중이네 밴드부는 매주 수요일 오후 6시에 합주를 하는데요. 멤버들이 너무 상습적으로 늦어서, 1분에 1달러씩 내야 하는 벌금 제도를 도입했습니다.
그런데 마침 익중이와 친구 넷이 놀다가 또 지각할 위기입니다. 아직 악보도 출력해 놓지 않은 상황이죠.
어차피 같이 놀다 늦은 것이니 벌금을 다섯 명이서 똑같이 나눠 내기로 하고, 벌금을 가능한 적게 내는 방법을 고민해 보기로 합니다.
@DongguemYoo
DongguemYoo / 최대 곲 구하기.py
Created July 5, 2020 04:34
[코드잇] 최대 곲 구하기 python
#최대곲 구하기
def max_product(card_lists):
# 코드를 작성하세요.
answer = 1;
#하나씩 돌면서 최고값을 곱해주고 삭제한다.
for i in range(0, len(card_lists)):
answer*= max(card_lists[i])
card_lists[i].remove(max(card_lists[i]))
@DongguemYoo
DongguemYoo / 최소동전 건네주기.py
Last active July 4, 2020 15:23
[코드잇] 그리드 알고리즘 최소동전 건네주기
탐욕적 선택법을 사용하려면
최적 부분 문제
부분 문제들의 최적의 답을 이용해서
기존문제의 최적의 답을 구할 수 있다는 것
탐욕적 선택 속성
각 단계에서의 탐욕스런 선택이
최종 답을 구하기 위한 최적의 선택