coding test/SW Expert Academy
4881. [파이썬 S/W 문제해결 기본] 5일차 - 배열 최소 합
https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AWTQh00qQs0DFAVT&categoryId=AWTQh00qQs0DFAVT&categoryType=CODE&problemTitle=&orderBy=PASS_RATE&selectCodeLang=PYTHON&select-1=2&pageSize=10&pageIndex=5# SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com #dfs함수 정의def dfs(depth, total): global min_sum if total>min_sum: ..
coding test/Baekjoon
[Python] 4963번 섬의 개수 / DFS.ver
https://www.acmicpc.net/problem/4963 이전에 재귀로 풀었던 함수를 이번에는 스택을 사용하여 풀어보았다.2025.04.08 - [coding test/백준] - [Python] 4963번 섬의 개수 / 재귀함수.ver# dfs-stackdx=[-1,-1,-1,0,0,1,1,1]dy=[1,0,-1,1,-1,1,0,-1]def dfs(y,x): board[y][x]=0 #방문처리 stack=[[y,x]] while stack: s=stack.pop() for i in range(8): ny=s[0]+dy[i] nx=s[1]+dx[i] if 0 재귀로 하였을 때보다 시간이 빨라진 것을..
coding test/Baekjoon
[Python] 2583번 영역 구하기 / DFS
https://www.acmicpc.net/problem/2583 피드백을 바탕으로 수정한 코드 -->#4방향 모두 탐지dx=[-1,0,0,1]dy=[0,-1,1,0]def dfs(x,y): ''' if board[y][x]==1: return ''' cnt=1 board[y][x]=1 #방문처리 stack=[[x,y]] while stack: s=stack.pop() #board[s[1]][s[0]]=1 #방문처리 for d in range(4): #굳이 8방향으로 탐색할 이유가? -> 4방향으로 해두 됌 nx=s[0]+dx[d] ny=s[1]+dy[d] ..
coding test/Baekjoon
[Python] 4963번 섬의 개수 / 재귀함수.ver
밀린 알고리즘 공부를 시작했다.DFS와 BFS부터 시작하는 게 좋을 것 같다고 해서 4963번을 풀게 되었다.이번 알고리즘은 DFS로 풀었다. def island(yi,xi): dy=[1,0,-1,1,-1,1,0,-1] dx=[-1,-1,-1,0,0,1,1,1] visited[yi][xi]=True for i in range(8): y=yi+dy[i] x=xi+dx[i] if 0처음에 코드를 돌렸을 때 첫 번째 테스트케이스 말고 뒤에 케이스에 모두 1이 나오길래 뭐가 문제인지 몰랐다.나중에 지피티로 확인해보니 재귀함수로 다시 들어갈 때 방문하지 않은 경우만 고려하고, 섬인 경우(1)의 조건을 빼었던 것이 문제였다.다시 수정하니까 제..
coding test/Baekjoon
[Python] 1260번 DFS와 BFS
https://www.acmicpc.net/problem/1260 코테 준비하면서 오랜만에 다시 보게 된 DFS와 BFS DFS를 풀 때는 재귀함수를 통해서, BFS를 풀 때는 queue를 통해서 풀었다.def bfs(qu,visited): while qu: q=qu.pop(0) if visited[q]==True: pass else: print(q,end=' ') visited[q]=True for i in range(n+1): if matrix[q][i]==1 and visited[i]==False: qu.append(i..