일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- dfs
- iOS개발
- Til
- 파이썬 풀이
- 파이썬
- Swift공부
- 공부
- 안드로이드 공부
- error
- 오토레이아웃
- swift
- Autolayout
- 백준온라인저지
- 앱개발
- Algorithm
- greedy algorithm
- UIKit
- SwiftUI
- Kotlin
- 백준 온라인 저지
- 그리디 알고리즘
- BFS
- 정렬
- Python
- Clean Architecture
- 알고리즘
- ios
- 프로그래머스
- Android
- 알고리즘 공부
- Today
- Total
목록Algorithm (33)
Tori의 개발 공부

문제 파이썬 풀이 이동을 1칸씩 하던 이전과 달리 한칸과 2배 이동하는 순간이동이 추가되었다. 그래서 이동 변수를 함수 안에서 설정하고 [x-1, x+1, 2 * x]로 설정하여서 해당 위치에서 탐색을 진행하도록 하였다. 그리고 이동할 때마다 저장된 값을 1씩 증가하여 시간을 기록했다. 그리고 x의 값이 k와 같으면 x에 기록된 값을 리턴하도록 하였다. 1부터 시작했기때문에 마지막 출력에서는 1을 뺀 값을 출력하도록 하였다. 그런데 처음 작성한 코드에서 시간 초과가 나왔다. 시간초과가 나온 코드 from collections import deque import sys input = sys.stdin.readline n, k = map(int, input().rstrip().split()) q = dequ..

문제 파이썬 풀이 해당 문제는 이전 문제인 7576토마토 문제가 3차원으로 변형된 문제이다. 2차원 탐색이였을 때 가졌던 이동 변수인 dx, dy에 dz를 추가하여 좌, 우, 앞, 뒤, 위, 6가지 이동을 할 수 있도록 해주면 될 것 같다. 3차원 탐색 BFS dx = [-1, 1, 0, 0, 0, 0] dy = [0, 0, -1, 1, 0, 0] dz = [0, 0, 0, 0, -1, 1] def bfs() : while q : x, y, z = q.popleft() for i in range(6) : nx = x + dx[i] ny = y + dy[i] nz = z + dz[i] if nx = n or ny = m or nz = h : con..

문제 파이썬 풀이 최소 날짜를 구하기 위해서 BFS를 사용하고, 탐색을 할 때마다 이전 탐색 지점 + 1을 값으로 저장해주어 날짜를 저장해준다. 즉 마지막에 탐색하는 칸에는 가장 큰 값이 들어 있고, 1부터 시작했기 때문에 max값 -1 이 모두 익은 날짜 이다. 탐색을 어떤 식으로 시작을 해야할지에 고민이 많았는데 이 문제에서의 포인트는 미리 모든 토마토를 탐색하여 이미 익어있는 토마토를 탐색 큐에 집어넣고 탐색을 시작하는 것이 포인트였다. BFS 코드 def bfs() : while q : x, y = q.popleft() for i in range(4) : nx = x + dx[i] ny = y + dy[i] if nx = n or ny = m : contin..

문제 파이썬 풀이 2차원 리스트에서의 탐색은 어떤 식으로 해야 하는지 이해하는데 조금 어려웠었다. 여기서의 포인트는 탐색할 방향인 상하좌우를 이동 좌표를 리스트에 담아 for문을 통해 탐색을 진행하는 것이다. 그리고 탐색의 방법도 dfs를 통해 재귀로 탐색하였다. 좌표 리스트 dx=[-1,0,1,0] dy=[0,1,0,-1] 해당 좌표는 dx, dy에서 같은 인덱스끼리 묶어보면 (-1, 0), (0, 1), (1, 0), (0, -1)로 각각 좌(x축으로 -1 이동), 상(y축으로 +1 이동), 우(x축으로 +1 이동), 하(y축으로 -1 이동)를 의미한다. DFS 탐색 함수 def dfs(x,y) : global cnt matrix[x][y] = "0" #방문한 곳 0으로 만들기 cnt+=1 #카운트 ..