Loading...

[프로그래머스] 여행경로 (javascript, dfs)

function solution(tickets) { tickets.sort(); // 글자순 정렬 let vis=Array(tickets.length).fill(false); var answer = []; function dfs(cur,cnt,path){ if(cnt===tickets.length && answer.length===0){ //정렬했으므로 처음오는 경우의 수가 답 answer=path; return; } for(let i=0;i

[프로그래머스] 단어 변환 (javascript)

단순 조합 문제~~ function solution(begin, target, words) { var answer = 0; let vis=new Array(words.length).fill(false); function dfs(cur,target,cnt){ if(cur===target){ if(answer===0 || cnt

[프로그래머스] 네트워크 (javascript)

bfs로 했지만 연결되는 곳까지 쭉 들어가는 것이 dfs에 가까운 문제인 것 같다. function solution(n, computers) { var answer = 0; let vis=Array(n).fill(0); for(let i=0;i0){ let cur=q.shift(); for(let j=0;j

[프로그래머스] 타겟 넘버 (javascript)

인덱스를 1씩 더해 옮기면서 현재 수를 더하거나 빼주는 방식으로 완전탐색해주기 function solution(numbers, target) { var answer = 0; function subset(cnt,sum){ if(cnt===numbers.length){ if(sum===target){ answer+=1; } return; } subset(cnt+1,sum+numbers[cnt]); subset(cnt+1,sum-numbers[cnt]); } subset(0,0); return answer; }

[swexpert] 프로세서 연결하기 (java, dfs, 백트래킹)

import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Solution { static int t,n; static int[][] map; static List core; static boolean[][] vis; static int[] xpos= {1,-1,0,0}; static int[] ypos= {0,0,1,-1}; static int res; static int max_connect; public static void main(String[] args) { Scanner sc=new Scanner(System.in); t=sc.nextInt(); for (int tc = 1; tc res) ..

[swexpert] 2105. 디저트 카페 (java, 시뮬레이션, 모든 탐색)

좀 되는 대로 푼 시뮬 문제라서 다른 방법도 공부해야겠다 import java.util.Scanner; public class Solution { static int t,n; static int[][] map; static int [] xpos= {1,-1,-1,1}; static int [] ypos= {1,1,-1,-1}; static int ans; static boolean vis[]; static boolean vis_dir[]; static int sy,sx; public static void main(String[] args) { Scanner sc=new Scanner(System.in); t=sc.nextInt(); for (int tc = 1; tc

[백준] 1987번 알파벳 (java, dfs)

www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 알파벳을 0~25의 숫자로 바꿔서 boolean체크를 해준다 import java.util.Scanner; public class Main { static int r,c; static String map[]; static int[] xpos= {0,0,1,-1}; static int[] ypos= {1,-1,0,0}; static int ans=Integer.MIN_VALUE; static boolean..

[백준] 3109번 빵집 (JAVA, 백트래킹)

www.acmicpc.net/problem/3109 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net 중간에 아니면 다른 경우를 탐색한다. 혹은 그만둔다. (백트래킹) 파이프를 가장 많이 연결하려면 최대한 위쪽으로 연결한다. 연결이 하나라도 되면 다른 경우는 생각하지 않고 다음 열에서 파이프라인을 연결을 시작한다. import java.util.Scanner; public class Main { static int r,c; static int map[][]; static boolean vis[][]; static int xpo..

[백준] 2839번 설탕 배달 (java)

www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 완전탐색 + 메모이제이션 기법을 사용 만약 같은 무게를 다시 재귀로 들어올 경우 기존보다 사용한 봉지의 수가 더 작을 경우만 vis[해당무게]를 업데이트하고 완전 탐색을 돌려준다. 만약 같은 무게인데 사용한 봉지의 수가 더 많은 경우는 더이상 검사할 필요가 없다. import java.util.Scanner; public class Main { static int n; static int ans=Integer.MAX_VA..

[swexpert] 1861. 정사각형방 (D4 , java, dfs풀기)

bfs풀 거 같은데 dfs로 해보라해서 dfs로 풀어봤다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Solution { static int t,n; static int[][] map; static int[] xpos= {0,0,1,-1}; static int[] ypos= {1,-1,0,0}; static int ans,cnt,place; public static void main(String[] args) throws NumberFormatException, IOException { Buffered..