python 80

[프로그래머스] 해시 level3 베스트 앨범, python

https://programmers.co.kr/learn/courses/30/lessons/42579?language=python3 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr def solution(genres, plays): # 0 해시 생성 genre_set = set() genre_dict = dict() genre_play_dict = dict() # 1 입력 for i in range(len(genres)): if genres[i] not in genre_set: genre_set.add(ge..

STUDY/Algorithm 2021.12.26

[백준] 1504 특정한 최단경로 python

https://www.acmicpc.net/problem/1504 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 지난번 풀었던 문제인데 재채점된 이후에 값이 틀리게 나와서 다시 풀게되었다. import sys; input = sys.stdin.readline from heapq import heappop, heappush def dijkstra(start, end, num_of_nodes): INF = 200_000 * 1_000 * 2 q = [] q.appen..

STUDY/Algorithm 2021.12.24

[Python] urllib, shutil을 사용한 비디오 스트림 저장

이 게시글을 쓴 이유는 하나다. 강의가 한번 끊기면 공부할 마음도 같이 끊기기 때문에 공부에 집중하기 위해서. 특정 사이트에서 강의를 보고 있었는데 아는 내용도 어느정도 있어 빠르게 넘기려고 했다. 하지만 네트워크의 문제인지 2배속으로 재생하거나 10초 뒤로 몇번 넘기면 자주 끊겼다. 차라리 전체파일을 다운 받아서 보는게 낫다고 생각했고, 공유할 목적이 아닌 혼자만 볼 생각이니 파일을 합쳐도 되지 않을까 해서 바로 실행에 옮겼다. 사용환경 python 3.7.9 첫번째로 파일을 다운로드 할수 있는지 부터 알아보았다. 내가 사용하는 사이트에선 강의를 파일을 일정 시간으로 나눠서 보낸다. (대부분 스트리밍이 그럴것이라고 생각한다) 이 모든 파일을 합치면 전체 비디오를 만들수 있으므로 다운로드 할수 있는지도 ..

STUDY/Python 2021.12.14

[백준] 2565 전깃줄 python

https://www.acmicpc.net/problem/2565 2565번: 전깃줄 첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는 www.acmicpc.net import sys; input = sys.stdin.readline def checkCross(cables, ignore_idx_set): cross = [0 for _ in range(len(cables))] for i in range(len(cables)): if i in ignore_idx_set: continue s1, e1 = cables[i] for j in range(i + 1, len(c..

STUDY/Algorithm 2021.10.11

[백준] 2021 최소 환승 경로 python

https://www.acmicpc.net/problem/2021 2021번: 최소 환승 경로 첫째 줄에 역의 개수 N(1≤N≤100,000), 노선의 개수 L(1≤L≤100,000)이 주어진다. 다음 L개의 줄에는 각 노선이 지나는 역이 순서대로 주어지며 각 줄의 마지막에는 -1이 주어진다. 마지막 줄에는 출발 www.acmicpc.net import sys; input = sys.stdin.readline from collections import deque N, L = map(int, input().split()) station = [list() for _ in range(N+1)] line = [list() for _ in range(L)] for i in range(L): tmp = list(m..

STUDY/Algorithm 2021.08.15

[백준] 2573 빙산, python

https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net import sys; input = sys.stdin.readline; H, W = map(int, input().split()) glacier = [list(map(int, input().split())) for _ in range(H)] answer = 0 while True: answer += 1 visit = [[0 for _ in range(W)] for _ in range(H)] ..

STUDY/Algorithm 2021.08.03

[백준] 1912 연속합, python, C

https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net N = int(input()) nums = list(map(int, input().split())) dp = [-200000000 for _ in range(N + 1)] for i in range(N): dp[i + 1] = max(dp[i] + nums[i], nums[i]) print(max(dp)) 처음엔 슬라이딩 윈도우라고 생각해서 브루트포스 방식으로 접근했는데 시간초과가 나왔다. O(N^2) 그래..

STUDY/Algorithm 2021.07.27

[백준] 16236 아기 상어, python

https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net import sys; input = sys.stdin.readline from collections import deque def search(start, size, board): d = [(-1, 0), (0, -1), (0, 1), (1, 0)] ret = [] visit = [[-1 for _ in range(N)] for _ in range(N)] visit[start[0]][sta..

STUDY/Algorithm 2021.07.22

[프로그래머스] 캐시, 2018 KAKAO BLIND RECRUITMENT[1차], python

https://programmers.co.kr/learn/courses/30/lessons/17680?language=python3# = cacheSize: cache_set.remove(cache.popleft()) if cacheSize: cache_set.add(city) cache.append(city) answer += 5 return answer set 을 사용해서 중복이 있는지 확인했다. 그리고 deque를 사용하여 사용된 값은 맨뒤로 보내는 작업을 했다. 더보기 from collections import deque def solution(cacheSize, cities): answer = 0 cache = deque() for i in range(len(cities)): city = cit..

STUDY/Algorithm 2021.07.19

[백준] 14503 로봇 청소기 python, C

https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net import sys; input=sys.stdin.readline N, M = map(int, input().split()) r, c, d = map(int, input().split()) room = [list(map(int, input().split())) for _ in range(N)] clean = [[0 for _ in range(M)] for _ in range(N)] directi..

STUDY/Algorithm 2021.07.13