문제풀이/DFS & BFS 38

@ [JAVA] Pro 거리두기 확인하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { int[] dx={-1,1,0,0}; int[] dy={0,0,-1,1}; int[][] visited; public boolean bfs(String[] place, int r, int c){ Queue queue= new LinkedList(); queue.add(new Point(r,c)); visited[r][c]..

[JAVA] [DFS] Pro 양궁대회

문제 https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { // 점수 차가 최대일 때, 모든 경우의 수 ArrayList answer=new ArrayList(); int[] gInfo = new int[11]; int maxValue=0; public int check(int[] temp){ int user1=0; // 어피치 int user2=0; // 라이언 for(int ..

[JAVA] [BFS] Pro 카드 짝 맞추기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/72415?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. 순열을 통해 카드 순서 구하기 2. 해당 순서대로 bfs 탐색하며 뒤집기 코드 import java.util.*; class Solution { int[] dx={-1,1,0,0}; int[] dy={0,0,-1,1}; int[][] graph; int answer = 1000000000; int result = 0; int card; int curR; i..

[JAVA] [DFS] Pro 미로 탈출 명령어

문제 https://school.programmers.co.kr/learn/courses/30/lessons/150365?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { String[] dir = {"d", "l", "r", "u"}; int[] dx={1,0,0,-1}; int[] dy={0,-1,1,0}; int endR; int endC; int sizeR; int sizeC; String answer; public boolean dfs(int r, int c, int k, String pa..

[JAVA] [BFS] Pro 아이템 줍기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/87694?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. 좌표를 2배로 늘린다. (3,5) -> (3,6) 원래는 갈 수 없는 길인데 좌표이동으로는 갈 수 있는것 처럼 보이기 때문이다. 2. 테두리 만을 남기기 위해 사각형의 전체 영역을 true로 채운 후, 내부를 false로 다시 채운다 3. bfs를 통해 최단경로 탐색한다. 코드 import java.util.*; class Solution { public ..

[파이썬] [BFS] 백준 4179 불!

문제 https://www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자 www.acmicpc.net 코드 import sys from collections import deque input=sys.stdin.readline queue=deque() dx=[-1,1,0,0] dy=[0,0,-1,1] r,c=map(int, input().split()) graph=[list(input().rstrip()) for _ in range(r)] visited=[[0]*c for _ ..

[파이썬] [DFS] 백준 2668 숫자고르기

문제 https://www.acmicpc.net/problem/2668 2668번: 숫자고르기 세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1, 2, …, N이 차례대로 들어 있고 둘째 줄의 각 칸에는 1이상 N이하인 정수가 들어 있다. 첫째 줄에서 숫자를 적절 www.acmicpc.net 코드 n=int(input()) graph=[[] for _ in range(n+1)] for i in range(1,n+1): t=int(input()) graph[i].append(t) answer=set() def dfs(first,second,num): #문제 그림의 첫번째 줄 first.add(num) #문제 그림의 두번째 줄 second.add(graph[num][0]..

[파이썬] [BFS] 백준 27211 도넛 행성

문제 https://www.acmicpc.net/problem/27211 27211번: 도넛 행성 준겸이는 $N \times M$칸으로 이루어진 도넛 모양의 행성에 살고 있다. 준겸이가 살고 있는 행성에는 위 그림처럼 격자 모양으로 줄이 그어져 있다. 행성의 각 칸은 숲으로 막혀 있거나, 지나갈 수 www.acmicpc.net 코드 import sys from collections import deque queue=deque() input=sys.stdin.readline n, m = map(int, input().split()) graph = [list(map(int, input().split())) for _ in range(n)] visited = [[False] * m for _ in range(..

@[파이썬] [DFS] 백준 2468 안전 영역

문제 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 코드 import sys sys.setrecursionlimit(100000) n = int(input()) graph = [list(map(int, input().split())) for _ in range(n)] dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def dfs(r, c): visited[r][c] = 1 for i in range(4): nx = r + dx[i..