전체 글

개발..해볼까?
코딩테스트 대비/프로그래머스

[Python][프로그래머스] lv2. 의상

https://school.programmers.co.kr/learn/courses/30/lessons/42578?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 코드 리뷰 해시 from collections import defaultdict def solution(clothes): answer = 1 type = dict() for item, category in clothes: if category in type: type[category].append(item) else: type[category] = item ..

코딩테스트 대비/SQL

코테 직전에 보는 SQL

- HAVING : 집계 함수와 함께 사용해야 한다. - SET 함수 : 값을 어떤 값으로 초기화할 때 사용한다. 시간이 등장할 때 사용할 수 있는 함수이다. 이때, HOUR이 0 ~ 23으로 되는 것이 조건이라면 이렇게 해결할 수 있다. SET @HOUR = -1; SELECT (@HOUR := @HOUR +1) AS HOUR 여기서 := 는 대입한다는 의미이다. LIKE vs '=' 날짜가 나올 때 많이 등장한다. LIKE : 와일드카드(%)를 사용하고 싶을 때 사용하자. WHERE DATE(B.SALES_DATE) LIKE '2022-01%' ' = ' : 정확한 날짜를 입력할 때 사용하자. WHERE SALES_DATE >= '2022-03-01' AND SALES_DATE < '2022-04-0..

코딩테스트 대비/프로그래머스

[Python][프로그래머스] lv3. 섬 연결하기

https://school.programmers.co.kr/learn/courses/30/lessons/42861?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 def solution(n, costs): answer =0 parent =[i for i in range(n)] costs.sort(key = lambda x:x[2]) def sameParent(parent, a,b): return getParent(parent, a) == getParent(parent, b) def getParent(parent, x)..

코딩테스트 대비/알고리즘

Kruskal 알고리즘(MST) / Union-Find

크루스칼 알고리즘(Kruskal) 탐욕적인 방법(Greedy Method)를 사용한다. 네트워크의 모든 정점을 최소 비용으로 연결하는 것이 목표이다. 최소 비용의 간선으로 구성한다. 사이클을 포함하지 않는다. 흔히 말해 "최소 신장 트리(MST)를 찾는 알고리즘"이라고 한다. 여기서 신장 트리란 무엇일까. 신장트리(Spanning Tree) 예를 들어 G1이라는 연결 그래프가 있다고 할 때, 4개의 정점으로 이루어져 있다. 네 개의 정점을 잇는 것이 목표이지만, 사이클을 형성하면 안 된다. 다시 크루스칼 알고리즘으로 넘어가서, 그러면 크루스칼 알고리즘은 최소 신장 트리를 찾는다고 했는데 대체 뭘까. 바로 신장 트리의 조건을 지키면서도, 최소한의 비용으로 신장 트리를 만드는 것을 목적으로 하는 것이다. 알..

코딩테스트 대비/프로그래머스

[Python][프로그래머스] lv3. 디스크 컨트롤러

https://school.programmers.co.kr/learn/courses/30/lessons/42627?language=python3# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 import heapq def solution(jobs): answer, now, i, now = 0,0,0,-1 l = len(jobs) pq = [] jobs.sort(key=lambda x:x[0], reverse=True) #도착 시간을 기준으로 내림차순 정렬한다. while True: while len(jobs) and jobs[-1][0]

코딩테스트 대비/Python 문법

[Python] 조건문의 list? True or False

조건문에서 list 사용 조건문에서 DFS, BFS 등의 리스트, 큐를 활용하는 알고리즘을 사용하다보면 조건문에 리스트를 사용하는 경우가 흔하게 있다. 그런데 나는 개념이 잡혀있지 않을 때는 조금 헷갈릴 때도 있어서, visited 처럼 거의 고유명사처럼 사용되는 리스트는 아예 외워버리고는 했다. if not visited: 그런데, 그래서 visited가 뭔데? 방문하지 않은 상황이라는 것은 알겠다만..그래서 코드 안에서 작동되는 이 visited라는 상황은 뭔데? 라는 의문이 끝없이 든 적도 있었다. (그렇게 계속 궁금하기만 했던 나 반성해..) False, True의 조건 결국 알아냈다. 파이썬의 특성 자체였다. list에 대한 조건문에서, 비어있는 list는 False로 판단된다. 그리고 하나 이..

코딩테스트 대비/프로그래머스

[Python][프로그래머스] lv3. 베스트앨범

https://school.programmers.co.kr/learn/courses/30/lessons/42579?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 def solution(genres, plays): answer = [] mlist = {} total_score={} for idx, (genre, play) in enumerate(zip(genres, plays)): if genre in mlist: mlist[genre].append((idx, play)) total_score[genre] += pla..

코딩테스트 대비/Python 문법

[Python] extend vs append 구분하기

append 파이썬 문법을 사용하다보면 정말 많이 쓰는 함수 중 하나가 append이다. 너무 당연하게 사용하던 탓에, append가 문제의 출력 조건을 지키지 않으면 당황할 때가 종종 있다. 그럴 때는 for로 풀어주거나, join으로 풀어주고는 하는데 이제는 그럴 필요가 없다! 그럴 경우에 extend를 생각한다면, 더 많은 조건을 부합할 것이다. 우선 append는 다음과 같다. list1 = [1, 2, 3] list2 = [4, 5, 6] list1.append(list2) print(list1) # 출력: [1, 2, 3, [4, 5, 6]] 기존의 list에 다른 list 하나를 더 추가한다면, 갑자기 list안에 list를 품어버린다. 진짜 말 그대로 append는 요소를 그대로 추가한다...

bee22
beeee