반응형

전체 글 181

[구름톤 챌린지] Day 19 - 대체 경로(그래프 최단 경로)

https://level.goorm.io/exam/195701/%EB%8C%80%EC%B2%B4-%EA%B2%BD%EB%A1%9C/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 해당 문제는 변화하는 그래프에서 최단 거리를 찾는 문제입니다. 문제 풀이 from collections import deque n, m, s, e = map(int, input().split()) graph = [[] for _ in range(n + 1)] for _ in range(m): u, v = map(int, input().split()) graph[u].append(v) graph[v].append(u) def bfs(s, e, avoid)..

알고리즘 2023.09.12

[구름톤 챌린지] Day 18 - 중첩 점(동적 프로그래밍)

https://level.goorm.io/exam/195700/%EC%A4%91%EC%B2%A9-%EC%A0%90/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 해당 문제는 동적 프로그래밍과 시뮬레이션 문제를 혼합한 문제입니다. 문제 풀이 # 입력값을 배열로 넣고 가로(h)-위,아래, 세로(v) - 오른쪽,왼쪽으로 넣음 # 그때 겹치는게 있다면 계산? # 예를들어, 가로 2개면 0개, 가로 1개, 세로 1개면 1개 , 가로 2개 새로 1개면 2개, 가로 2개 세로 2개면 24개 곱하기 하면 됨 n,m = map(int,input().split()) arr = [ [ [] for _ in range(n)] for _ in ran..

알고리즘 2023.09.12

[구름톤 챌린지] Day 17 - 통신망 분석(DFS/BFS)

https://level.goorm.io/exam/195699/%EA%B7%B8%EB%9E%98%ED%94%84%EC%9D%98-%EB%B0%80%EC%A7%91%EB%8F%84/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 해당 문제는 그래프의 컴포넌트 개념과 다중 조건 정렬을 활용한 해결이 필요하다 문제 풀이 from collections import deque n,m = map(int,input().split()) graph = [[] for _ in range(n+1)] visited = [0]*(n+1) # 양방향으로 그래프 만들기 for _ in range(m): a,b = map(int,input().split()..

알고리즘 2023.09.12

[구름톤 챌린지] Day 16 - 연합(그래프 탐색)

https://level.goorm.io/exam/195698/%EC%97%B0%ED%95%A9/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 해당 문제는 그래프에서 컴포넌트의 개수를 찾는 문제입니다. 컴포넌트와 그래프 탐색 개념이 필요합니다. 문제 풀이 from collections import deque n,m = map(int,input().split()) graph = [[] for _ in range(n+1)] visited = [0]*(n+1) dq = deque() for _ in range(m): a,b = map(int,input().split()) graph[a].append(b) result = 0 for ..

알고리즘 2023.09.12

[책 후기] - 데이터 분석가의 숫자유감(저자 - 권정민)

데이터분석가와 관련해서 추천 도서를 찾던 도중 블로그 2곳에서 동시에 추천하는 책이라 도서관에서 빌려 읽어보았다. 이 책은 데이터분석가가 실제 현업에서 흔히 발생하는, 데이터를 오해하면서 일어나는 에피소드를 글로 담은 책이다. 만화로 되어 있기에 매우 쉽게 읽혀 2시간만에 빌리자마자 다 읽었다. 인과관계와 상관관계, A/B 테스트, 조건부 확률 등 빅데이터 시대에 데이터를 활용하는데 필요한 상식들이 재밌게 담겨있다. 데이터 분석가를 취업하는 사람에게도 실제 현업에서 어떤 에피소드로 데이터 분석가들이 다른 업무 사람들과 커뮤니케이션에 오해가 생기는지 알 수 있으며, 챕터마다 통계 용어에 대해 알아야 할 내용이 글로 담겨 있고 사전으로도 제공되어 가볍게 읽어보기 좋은 책이다. 가장 의미있던 챕터는 Ch1이었..

후기/도서 2023.09.07

[구름톤 챌린지] Day 15 - 과일 구매(그리디)

https://level.goorm.io/exam/195697/%EA%B3%BC%EC%9D%BC-%EA%B5%AC%EB%A7%A4/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 문제 # 1개만 샀을때 가장 큰 값을 먼저 구매한다(딕셔너리를 새로 만들어서 1개당 가격을 구하고, 밸류로 정렬/ 여기서 딕셔너리는 1개당 가격 : 갯수) # 그리고 최대가격을 넘어가면 스탑 n,k = map(int,input().split()) per_price = [] for _ in range(n): p,c = map(int,input().split()) per_price.append((c//p,p)) # 포용감과 갯수 per_price = sor..

알고리즘 2023.09.03

[구름톤 챌린지] Day 14 - 작은 노드(그래프)

https://level.goorm.io/exam/195696/%EC%9E%91%EC%9D%80-%EB%85%B8%EB%93%9C/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 문제 풀이 n,m,k = map(int,input().split()) graph = [[]*(n+1) for _ in range(n+1)] for _ in range(m): a,b = map(int,input().split()) graph[a].append(b) graph[b].append(a) cnt = 1 visited = [0]*(n+1) num = [] num.append(k) # 왔다갔다할 리스트 visited[k] = 1 # 방문처리 whil..

알고리즘 2023.09.03

[구름톤 챌린지] Day 13 - 발전기2(DFS)

https://level.goorm.io/exam/195695/%EB%B0%9C%EC%A0%84%EA%B8%B0-2/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 문제 풀이 from collections import deque n,k = map(int,input().split()) arr = [list(map(int,input().split())) for _ in range(n)] ans = [0]*(max(set(sum(arr,[])))+1) dx = [-1,1,0,0] dy = [0,0,-1,1] dq = deque() for i in range(n): for j in range(n): if arr[i][j] > 0: nu..

알고리즘 2023.09.03

[구름톤 챌린지] Day 12 - 발전기(DFS)

https://level.goorm.io/exam/195694/%EB%B0%9C%EC%A0%84%EA%B8%B0/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 문제 풀이 import copy from collections import deque n = int(input()) dx = [-1,1,0,0] dy = [0,0,-1,1] arr = [list(map(int,input().split())) for _ in range(n)] visited = copy.deepcopy(arr) dq = deque() cnt = 0 for i in range(n): for j in range(n): if arr[i][j] == 1: dq.a..

알고리즘 2023.09.03

[구름톤 챌린지] Day 11 - 통증2(동적 프로그래밍)

https://level.goorm.io/exam/195693/%ED%86%B5%EC%A6%9D-2/quiz/1 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 문제 풀이 동적프로그래밍 문제로 재귀함수를 이용해서 풀어야하는 것이 정석인데 구현으로 풀게 되었다. DP로 푸는 방법도 알아두자. # 1. 작은수로 나누어지거나 안나누어질때는 바로 결과값 return # 2. 큰수보다 작은 n인데 a로 나누어지면 몫, 안나누어지면 -1 # 3. n이 b보다 클때, 최대 몫 구하고 그 나머지가 a로 나누어지면 몫 더하기 안된다면 몫에서 -1하면서 a로 나누어지는지 확인 import copy def sol(): n = int(input()) a,b = ..

알고리즘 2023.09.03
반응형