목록전체 글 (38)
Bonfire
문제 & 조건나의 코드우선 단조수열인지 확인하기 위해 오른쪽으로 값을 비교한다.단조수열이 아니라면, 최대값을 구하기 위해 바뀌기 시작한 곳의 숫자를 -1 해줘야하는데, 단조수열이여야 하므로, 만약 왼쪽에 같은 숫자가 있다면 함께 -1을 해줘야 한다.1. 숫자를 오른쪽으로 차례대로 비교하다가, 같거나 증가하지 않으면 멈춘다.2. 멈춘 인덱스의 숫자에서 왼쪽에 같은 숫자가 있다면 같지 않은 숫자가 나올 때까지 이동한다.3. 같지 않은 숫자에서 1 빼주고, 나머지 뒤의 숫자를 9로 대체한다." data-ke-type="html">HTML 삽입미리보기할 수 없는 소스class Solution: def monotoneIncreasingDigits(self, n: int) -> int: n=str..
문제 & 조건나의 코드 다만, 어떻게 짜야할지 고민을 하다, 그냥 좌표에 인덱스를 붙여서 평소에 쓰던 다익스트라 알고리즘을 적용 시키는 방법으로 진행하였다.나의 접근 방법1. 각 Special road의 좌표들과 시작,끝점을 set으로 중복 없이 구하고, index화 한다.2. 각 좌표간 cost를 기록해둔 cost_map을 만든다.3. dijkstra 알고리즘을 사용하여 최단거리를 구한다." data-ke-type="html">HTML 삽입미리보기할 수 없는 소스from heapq import *class Solution: def minimumCost(self, start: List[int], target: List[int], specialRoads: List[List[int]]) -> int: ..
문제 & 조건나의 풀이 및 코드기본 다익스트라 알고리즘의 조건에서 node를 갱신할때 사라지지 않았을 경우의 조건만 추가해주면 바로 풀 수 있다.1. 힙을 이용한 다익스트라 구현2. 새로운 정점에 도착할 때 누적된 시간과, disappear에서 언제 사라지는지 비교하여 사라지지 않았을 경우에만 queue에 넣어 탐색을 진행한다.3. dist 리스트에 저장된 값들을 통해 갱신되지 않은 1e9 값은 도달할 수 없다고 볼 수 있으므로 -1로 모두 바꿔준다." data-ke-type="html">HTML 삽입미리보기할 수 없는 소스from heapq import *class Solution: def minimumTime(self, n: int, edges: List[List[int]], disappear:..
문제 및 제한사항나의 풀이 및 코드 HTML 삽입미리보기할 수 없는 소스class Solution: def minAddToMakeValid(self, s: str) -> int: stack=[] for ss in s: if stack and stack[-1]=="(" and ss ==")": stack.pop() else: stack.append(ss) return len(stack)
문제 및 조건풀이 및 코드아이디어 : 가장 사전순으로 빠른 것을 작다고 표현할 때(아스키 코드로 생각해도 됨), s를 미리 탐색해서, dictionary 형식에 각 알파벳이 몇 개씩 존재하는지 체크한 후, s를 다시 앞에서 부터 하나씩 스택에 넣어준다.이때 뒤에 남은 알파벳들 중 가장 작은 값이 스택의 마지막 값보다 크면, 스택의 마지막 값이 가장 작은 값 이므로 스택에서 마지막값을 pop 해서 paper에 적어준다.이 과정을 반복하고, 남은 t의 값들을 reverse해서 더해준다." data-ke-type="html">HTML 삽입미리보기할 수 없는 소스 class Solution: def robotWithString(self, s: str) -> str: dic={} p..