전체 글 44

121. Best Time to Buy and Sell Stock (Easy)

import sysclass Solution: def maxProfit(self, prices: List[int]) -> int: minVal = sys.maxsize res=0 for i in prices: if i 엊그제인가 코테를 봤는데 1번 문제가 이거랑 똑같은 게 나왔다아주 쉬운 문제인데 1시간에 3문제라 촉박해서 그런지... O(n^2)으로 풀어버렸다실수하지 않게 다시 풀어본다...다행히도 1번을 O(n^2)으로 풀어내고 2, 3번엔 집중했는지,,, 코테는 붙어서 면접을 보게 됐다

Dev/Algorithm 2024.11.08

127. Word Ladder (Hard)

처음에 bfs와 딕셔너리 쓰면 되는 건 잘 알겠는데, 어떻게 한글자씩 다른 word를 탐방할지 고민스러웠다for 문을 다 돌려서 딕셔너리에 넣고 비교하는 코드를 짰는데, 당연하게도 TLE 가 났고 ...답은 fox 면 그 안에 fix, fux, xox 이런 걸 넣는 게 아니라*ox : foxf*x: foxfo*: fox이렇게 딕셔너리에 키랑 값을 저장하는 거였다메모리는 많이 들겠지만 TLE 가 나지는 않을 것 같다from collections import Counter, defaultdict, dequeclass Solution: def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int: if end..

Dev/Algorithm 2024.11.07

54. Spiral Matrix (Medium)

54. Spiral Matrix흔한 달팽이 문제다며칠 전에 본 기업 코테에서도 변형 달팽이 문제가 나왔는데 잘 알아두면 좋을 것 같다1. 방문 배열을 이용하는 방법,2. 세로길이 가로길이 세가면서 방향 턴 하는 방법정도가 있을 것 같은데 하나하나 조건 걸기 귀찮아서 1번으로 풀이했다.방향 바꾸는 조건 작성에서 실수하지 않는 게 중요하다. 특히 dxdy는 오타 한번 내면 찾을 수가 없다...class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: def change_dir(x): return (x+1)%4 dx,dy=[1,0,-1,0],[0,1,0,-1] ..

Dev/Algorithm 2024.11.01

994. Rotting Oranges (Medium)

994. Rotting Oranges 쉬운 bfs 문제백준 토마토들을 열심히 풀었다면 10분컷할 수 있다연결된 오렌지 군집에 여러 썩은 오렌지가 있는 경우만 조심해서 큐에 미리 넣어주면 된다from collections import dequeclass Solution: def orangesRotting(self, grid: List[List[int]]) -> int: n,m = len(grid), len(grid[0]) v = [[-1]*m for _ in range(n)] dirx, diry=[0,0,-1,1],[-1,1,0,0] q = deque() for i in range(n): for j in range(m)..

Dev/Algorithm 2024.11.01