문제 : https://school.programmers.co.kr/learn/courses/30/lessons/301650풀이 : https://velog.io/@mkflower0917/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-Lv.4-%ED%8A%B9%EC%A0%95-%EC%84%B8%EB%8C%80%EC%9D%98-%EB%8C%80%EC%9E%A5%EA%B7%A0-%EC%B0%BE%EA%B8%B0-SQL WITH FIRST_GEN AS ( SELECT ID FROM ECOLI_DATA WHERE PARENT_ID IS NULL),SECOND_GEN AS( SELECT ECOLI_DATA.ID, ECOLI_DATA.PARE..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/301649풀이 : https://chaemi720.tistory.com/369 코드 1SELECT D.ID , CASE WHEN D.R > D.MAX_ID*0.75 THEN 'CRITICAL' WHEN D.R > D.MAX_ID*0.5 THEN 'HIGH' WHEN D.R > D.MAX_ID*0.25 THEN 'MEDIUM' ELSE 'LOW' END AS COLONY_NAMEFROM ( SELECT ID # 순위 , ROW_NUMBER() OVER (ORDER BY SIZE_OF_COLONY) AS R..
문제 : https://leetcode.com/problems/implement-queue-using-stacks/ 문제에서 스택 두 개 쓰라길래 어떻게 하라는지 모르겠어서 무시하고 일단 해봤는데 통과는 함그것도 더 빠르게. 일종의 치팅이니까 일단 답을 보기로 함. gpt에게 물어봄. def dequeue(self): """ 큐에서 데이터를 제거 (FIFO) """ if not self.stack_out: # stack_out이 비어있으면 stack_in에서 데이터를 옮긴다 while self.stack_in: self.stack_out.append(self.stack_in.pop()..
문제 : https://www.acmicpc.net/problem/1406 import sysinput = sys.stdin.readlineclass Node(): def __init__(self,s,p,n): self.string = s self.prev = p self.next = n def delete(self): if self.prev: self.prev.next = self.next if self.next: self.next.prev = self.prev def addLeft(self,s): new_node = Node(s,self.prev,self) i..
문제 : https://www.acmicpc.net/problem/21653 Скобки는 러시아어로 '괄호'라는 뜻. 문제여러분은 막 컴퓨터 과학 수업에서 산술 표현에 대해 배운 어린 프로그래머 아그네스를 만나게 됩니다. 아그네스는 산술 표현에서 괄호만 남기면 어떻게 될지 궁금해졌고, 검색을 통해 수학자들이 그러한 괄호 문자열을 '올바른 괄호 문자열'이라고 부른다는 사실을 알아냈습니다. 예를 들어, ()(())는 올바른 괄호 문자열입니다. 왜냐하면 (2+2):(3–(5–2)+4)와 같은 산술 표현에서 나올 수 있기 때문입니다. 반면에 (()와 ())(는 올바른 괄호 문자열이 아닙니다. 괄호가 정확히 6개(3개의 여는 괄호와 3개의 닫는 괄호)로 이루어진 올바른 괄호 문자열이 다섯 가지가 있다는 것도 쉽..
문제 :https://www.acmicpc.net/problem/1948 import syssys.setrecursionlimit(10**5)# 해당 도시까지 걸리는 최대 시간 경로 갱신def max_time(city): if city==start: return 0 if time[city]==-1: # 아직 탐색하지 않았다면 for s,t in graph[city]: bef_time = max_time(s)+t if time[city]  경로 역추적에 대한 아이디어 얻어가기.굳이 정점에 이전까지의 모든 경로를 저장하지 않아도 될 때가 있다.특정 조건을 만족하는 이전 정점 하나만 저장하고 마지막에 한 번만 따라가면 됨.
문제 : https://www.acmicpc.net/problem/1005 import sysinput=sys.stdin.readlinefrom collections import dequeimport heapq# 다 지었으면 다음 건물 indegree 지워주고 # 다음 건물을 지을까말까 확인하는 과정def next_building(B,build_order,indegree,sub_Q): for next in build_order[B]: indegree[next]-=1 if indegree[next] == 0: sub_Q.append(next)T=int(input())for _ in range(T): # 각 경기에 대한 정보 받아오기 total_t..
문제 : https://www.acmicpc.net/problem/3055R, C = map(int, input().split())twMap = [list(input()) for _ in range(R)]arrived = Falsecnt = 0dx, dy = [1,-1,0,0], [0,0,1,-1]while(1): # 고슴도치 움직임 moved = False for i in range(R): for j in range(C): if twMap[i][j] == 'S': for k in range(4): if (0 그냥 시뮬레이션이라고 생각하고 풀었는데 https://wookcode.tistory.co..
문제 : https://www.acmicpc.net/problem/17940 from collections import dequedef bfs(stn): Q = deque() Q.append(stn) while Q: stn = Q.popleft() for next, time in graph[stn]: # 환승 정보 초기화 new_trans=dp[stn][0] new_time=dp[stn][1]+time next_trans = dp[next][0] if cpn[stn] != cpn[next]: new_trans+=1 # 환..
문제 : https://www.acmicpc.net/problem/7569 from collections import dequeM,N,H=map(int,input().split())box=[[] for _ in range(H)]for i in range(H): for j in range(N): box[i].append(list(map(int,input().split())))# 토마토 어디 있는지 탐색# i : 층수, j : 세로, k : 가로q = deque()for i in range(H): for j in range(N): for k in range(M): if (box[i][j][k]==1): q.append((i,j..
lazyArtisan
lazyArtisan