일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 어렵다
- D3
- 파이썬
- 내휴학생활중의아주큰일
- 컨트리뷰톤
- 휴학
- build
- androidstudio
- level3
- level1
- Github
- SQL
- BFS
- py
- MSBuild
- Python
- 자바
- 대학원
- git
- SWEA
- LEVEL2
- level4
- java
- 프로그래머스
- 안드로이드스튜디오
- 컴퓨터비전
- 다시풀기
- WebOS
- Matrix Factorization
- 대학원일기
- Today
- Total
목록Algorithm (80)
bit가 눈 앞에서 왔다갔다
https://programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,-15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 1) def solution(routes): answer = 0 routes.sort(key=lambda x:x[1]) # 진출지점 기준으로 정렬 visit=[False for i in range(len(routes))] # 리스트 차원 주의하자.. for i in range(len(routes)): if visit[i] == False: answer += 1 visit[i] = True cam = routes[i][1] # 캠 갱신 for j in range(i+..
https://programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr def solution(operations): answer = [] arr = [] for op in operations: op = op.split() num = int(op[1]) # append할 대상입니다. if op[0] == 'I': arr.append(num) else: # D인 경우 if not arr: continue if num == 1: # 1인 경우 최댓값 삭제 tmp = max(arr) else: # -1인 경우 최솟값 삭제 tmp = min(arr) arr.remove(tmp) # print(arr) if not a..
3회차 - 마지막이 좀 찝찝한데 다시 보자 2회차 - 건강한 멘탈로 다시 풀자 https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 음..그래. 정말 열심히 풀었는데 테스트케이스 2개랑 3번만 맞췄다. 음ㅁ.. 고민 엄청하다가 제출하면 맞출 줄 알았는데 아니었다- 도대체 뭘 생각못한걸까..? 하지만 예전엔 접근도 잘 못하고 정말 싫어하던 bfs dfs를 열심히 푼 나 자신 칭찬해 ..
https://programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr # kruskal 알고리즘 - MST 사용, 최소의 비용으로 사이클을 형성하지 않음 def solution(n, costs): answer = 0 costs.sort(key=lambda x: x[2]) # kruskal1 - 오름차순 정렬 # costs 내부 원소들을 기준으로 sorting 할건데 그 내부의 2번째 원소 기준으로 candi = set([costs[0][0]]) # 주의! while len(candi) != n: # kruskal2 - 사이클 형..
**다시풀기 https://programmers.co.kr/learn/courses/30/lessons/43236 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr def solution(distance, rocks, n): rocks.sort() rocks.append(distance) left, right = 1, distance while left n: right = mid - 1 else: answer = mid left = mid + 1 return answer
https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr def solution(genres, plays): answer = [] dict = {} for i in range(len(genres)): if genres[i] in dict: dict[genres[i]][0].append(i) dict[genres[i]][1] += plays[i] else: dict[genres[i]] = [[i], plays[i]] ..
https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 내가 짜는 코드는 효율성 테스트를 한 번에 통과하는 경우가 거의 없다- 그래도 정확성 테스트를 통과함에 큰 의의를 둔다. * 최적화 전 딱 봐도 효율성 통과 못하게 생기긴 함ㅇㅇ 너무 막 짰다. def solution(people, limit): answer = 0 people=sorted(people, reverse=True) whi..
DFS : 현재 정점에서 갈 수 있는 점들까지 (끝까지) - 모든 노드를 방문해야할 때 - 경로에 특징을 저장해둬야 하는 문제 - 검색 대상 그래프가 클 경우 - (BFS보다 간단하지만 느림) BFS : 현재 정점에서 연결된 가까운 점들부터 - 재귀적으로 동작하지 않음 - 최단거리, 임의의 경로 문제 - 규모가 작고 원하는 대상이 멀지 않을때 - 큐 사용, FIFO 원칙 둘 다 - 어떤 노드를 방문했는지 여부 검사 반드시! (or 무한루프,,)
https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr from collections import deque def bfs(begin, target, words, visited): if target not in words: return 0 deq = deque([[begin, 0]]) # 주의 while deq: cur, depth = deq.popleft() if cur ..