알고리즘(71)
-
[프로그래머스/Java] 배달 Lv.2
문제 배달 풀이 다익스트라 알고리즘을 활용하여 1번 마을에서 다른 마을까지의 거리를 모두 구한 뒤 K와 대소비교한다. 풀이 import java.util.*; class Solution { public int solution(int N, int[][] road, int K) { int[] dist = new int[N + 1]; for (int i = 2; i < N + 1; i++) { dist[i] = Integer.MAX_VALUE; } int[][] graph = new int[N + 1][N + 1]; for (int[] r : road) { graph[r[0]][r[1]] = graph[r[0]][r[1]] == 0 ? r[2] : Math.min(graph[r[0]][r[1]], r[2]);..
2023.12.05 -
[프로그래머스/Java] 행렬 테두리 회전하기 Lv.2
문제 행렬 테두리 회전하기 풀이 단순 구현을 해도 풀리는 문제였다. 주어지는 행, 열 크기에 맞춰 board를 만들어주고 queries의 (x1, y1, x2, y2) 좌표에 맞게 시계방향으로 값을 swap해준다. 이때 각 query별 값의 최솟값을 찾는다. 코드 import java.util.*; class Solution { int[][] board; public int[] solution(int rows, int columns, int[][] queries) { setBoard(rows, columns); int index = 0; int[] answer = new int[queries.length]; for (int[] query : queries) { int x1 = query[0] - 1; i..
2023.12.02 -
[백준/C++] 15652번 N과 M (4)
문제: www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제풀이 N과 M 시리즈 백트래킹 문제 코드 #include using namespace std; int n,m; int arr[10]; void func(int k){ if(k==m){ for(int i=0; i
2021.05.05 -
[백준/C++] 15651번 N과 M (3)
문제: www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제풀이 백트래킹 문제 코드 #include using namespace std; int n,m; int arr[10]; void func(int k){ if(k==m){ for(int i=0; i
2021.05.02 -
[백준/C++] 15650번 N과 M (2)
문제: www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제풀이 백트래킹 문제 코드 #include using namespace std; int n,m; int arr[10]; bool isused[10]; void func(int k){ if(k==m){ for(int i=0; i
2021.05.02 -
[백준/C++] 15650번 N과 M (1)
문제: www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제풀이 백트래킹 문제 코드 #include using namespace std; int n,m; bool isused[10]; int arr[10]; void func(int k){ if(k==m){ for(int i=0; i
2021.04.30