본문 바로가기

전체 글

(148)
99클럽 코테 스터디 25일차 TIL, 프로그래머스 / 순위 🔑 오늘의 학습 키워드 bfs🔗 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/49191 from collections import dequedef solution(n, results): answer = 0 left = {i+1 : [] for i in range(n)} right = {i+1 : [] for i in range(n)} for result in results: left[result[0]].append(result[1]) right[result[1]].append(result[0]) def bfs(start,lr): queue = deque([..
99클럽 코테 스터디 24일차 TIL, 프로그래머스 / 가장 먼 노드 🔑 오늘의 학습 키워드 : 그래프🔗 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/49189 from collections import dequedef solution(n, edge): answer = [0] * (n+1) graph = {i:[] for i in range (1,n+1)} for a,b in edge: graph[a].append(b) graph[b].append(a) queue = deque([(1,0)]) visited = set([1]) while queue: node,distance = queue.popleft() for next..
99클럽 코테 스터디 23일차 TIL, leetcode / IPO 🔑 오늘의 학습 키워드 heap🔗 문제링크 https://leetcode.com/problems/ipo/ # 현재 가지고 있는 상품 중에서 가장 좋은 것을 선택# 자료구조 heap을 사용해서 pop할 때마다 비교하면서 가장 좋은 것을 선택class Solution: def findMaximizedCapital(self, k: int, w: int, profits: List[int], capital: List[int]) -> int: projects = sorted(list(zip(capital, profits))) max_heap = [] i = 0 for _ in range(k): # 현재 자본(w)으로 할 수 ..
99클럽 코테 스터디 22일차 TIL, leetcode / maximal-rectangle 🔑 오늘의 학습 키워드 : 스택🔗 문제링크 https://leetcode.com/problems/maximal-rectangle/ class Solution: def maximalRectangle(self, matrix: List[List[str]]) -> int: if not matrix or not matrix[0]: return 0 rows = len(matrix) cols = len(matrix[0]) max_area = 0 heights = [0] * cols for i in range(rows): for j in range(cols): ..
99클럽 코테 스터디 19일차 TIL, 프로그래머스 / 조이스틱 🔑 오늘의 학습 키워드 : 그리디🔗 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/42860 def solution(name): if set(name) == {'A'}: return 0 a_pos = ord('A') # 'A' : 65, 'Z' : 90 z_pos = ord('Z') answer = float('inf') for i in range(len(name)//2 + 1): l_r = name[-i:] + name[:-i] #왼쪽먼저 갔다가 + 오른쪽 r_l = name[i: :-1] + name[i+1:][::-1] # 기준점에서 빠꾸 + 좌..
99클럽 코테 스터디 18일차 TIL, 백준 / 일루미네이션 / 5547 🔑 오늘의 학습 키워드 : bfs🔗 문제링크 https://www.acmicpc.net/problem/5547 import sysinput = sys.stdin.readlinefrom collections import dequew,h = map(int,input().split())jido = [[0]*(w+2)]for _ in range (h): jido.append([0] + list(map(int,input().split())) +[0])jido.append([0]*(w+2))di = [ [(-1,-1),(0,-1),(1,0),(0,1),(-1,1),(-1,0)], [(0,-1),(1,-1),(1,0),(1,1),(0,1),(-1,0)]]def in_range(x,y): re..
99클럽 코테 스터디 17일차 TIL, 백준 / 사자와 토끼 / 17834 🔑 오늘의 학습 키워드 : 이분그래프🔗 문제링크 https://www.acmicpc.net/problem/17834 import sysfrom collections import dequeinput = sys.stdin.readline# 이분 그래프인지 아닌지 판별하는 함수# 각각의 그룹도 같이 returndef is_bipartite(n,graph): color = [None] * (n+1) def bfs(start): queue = deque([start]) color[start] = True while queue: node = queue.popleft() for near in graph[node]: ..
99클럽 코테 스터디 16일차 TIL, 프로그래머스 / N-Queen 🔑 오늘의 학습 키워드 : 재귀🔗 문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12952 def solution(n): global answer answer = 0 # 열과 대각선 사용 여부를 체크하는 배열 is_col = [False] * n is_up_down_diag = [False] * (2 * n - 1) is_down_up_diag = [False] * (2 * n - 1) def dfs(row): global answer if row == n: answer += 1 return for col..