Algorithm 179

[Python] 백준 28215번 대피소

문제https://www.acmicpc.net/problem/28215 입력 예제5 21 53 03 36 128 94 20 00 55 05 5출력 예제55문제 풀이조합으로 k개의 집에 대피소 설치각 집에서 최소거리가 걸리는 대피소 찾기가장 가까운 대피소에서 멀리 떨어진 거리 찾기먼 거리중 최소거리 걸리는 대피소 찾은 후 출력코드from itertools import combinationsn,k = map(int,input().split())house = []for _ in range(n): x,y = map(int,input().split()) house.append([x,y])# 모든 집과의 거리가 가장 가까운 대피소 찾기list = [[] for _ in range(n)]result = f..

[JAVA] 백준 14891번 톱니바퀴

문제 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 입력 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 시계방향 순서대로 주어진다. N극은 0, S극은 1로 나타나있다. 다섯째 줄에는 회전 횟수 K(1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 회전시킨 방법이 순서대로 주어진다. 각 방법은 두 개의 정수로 이루어져 있고, 첫 번째 정수는 회전시킨 톱..

[JAVA] 백준 1715번 카드 정렬하기

문제 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 100,000) 이어서 N개의 줄에 걸쳐 숫자 카드 묶음의 각각의 크기가 주어진다. 숫자 카드 묶음의 크기는 1,000보다 작거나 같은 양의 정수이다. 출력 첫째 줄에 최소 비교 횟수를 출력한다. 입력 예제 3 10 20 40 출력 예제 100 문제 풀이 가장 작은 값 두개를 계속해서 더해나가면 최소 비교횟수를 도출해낼 수 있다. pq에 입력받은 값을 모두 넣은 후, 값이 2개 이상 있다면, 임..

[Java] 백준 13165번 침투

문제 13565번: 침투 첫째 줄에는 격자의 크기를 나타내는 M (2 ≤ M ≤ 1,000) 과 N (2 ≤ N ≤ 1,000) 이 주어진다. M줄에 걸쳐서, N개의 0 또는 1 이 공백 없이 주어진다. 0은 전류가 잘 통하는 흰색, 1은 전류가 통하지 않 www.acmicpc.net 입력 첫째 줄에는 격자의 크기를 나타내는 M (2 ≤ M ≤ 1,000) 과 N (2 ≤ N ≤ 1,000) 이 주어진다. M줄에 걸쳐서, N개의 0 또는 1 이 공백 없이 주어진다. 0은 전류가 잘 통하는 흰색, 1은 전류가 통하지 않는 검은색 격자임을 뜻한다. 출력 바깥에서 흘려준 전류가 안쪽까지 잘 전달되면 YES를 출력한다. 그렇지 않으면 NO를 출력한다. 입력 예제 5 6 010101 010000 011101 10..

Algorithm/BFS&DFS 2023.11.02

[Python] 백준 1240번 노드사이의 거리

문제 1240번: 노드사이의 거리 첫째 줄에 노드의 개수 $N$과 거리를 알고 싶은 노드 쌍의 개수 $M$이 입력되고 다음 $N-1$개의 줄에 트리 상에 연결된 두 점과 거리를 입력받는다. 그 다음 줄에는 거리를 알고 싶은 $M$개의 노드 쌍 www.acmicpc.net 입력 첫째 줄에 노드의 개수 N과 거리를 알고 싶은 노드 쌍의 개수 M이 입력되고 다음 N - 1개의 줄에 트리 상에 연결된 두 점과 거리를 입력받는다. 그 다음 줄에는 거리를 알고 싶은 M개의 노드 쌍이 한 줄에 한 쌍씩 입력된다. 출력 M개의 줄에 차례대로 입력받은 두 노드 사이의 거리를 출력한다. 입력 예제 4 2 2 1 2 4 3 2 1 4 3 1 2 3 2 출력 예제 2 7 문제 풀이 인접리스트로 그래프를 만든 후, 가중치 값을..

Algorithm/BFS&DFS 2023.11.01

[Java] 백준 4179번 불!

문제 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자 www.acmicpc.net 입력 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자들은 다음을 뜻한다. #: 벽 .: 지나갈 수 있는 공간 J: 지훈이의 미로에서의 초기위치 (지나갈 수 있는 공간) F: 불이 난 공간 J는 입력에서 하나만 주어진다. 출력 지훈이가 불이 도달하기 전에 미로를 탈출 할 수 없..

Algorithm/BFS&DFS 2023.11.01

[Java] Swea 1961번 숫자 배열 회전

문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 배열을 90도씩 회전 시키면서 저장 한 후, 형식에 맞게 출력한다. rotation 함수 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Solution { // 90도씩 회전시키는 함수 public static int[][] rotation(int[][]arr, int n) { int[][] result = new int[n][n]; for ..

[Java] SWEA 1959번 두 개의 숫자열

문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 어떤 배열이 더 긴지 길이를 확인하고 먼저 입력받은 배열이 긴 경우, 길이가 같은 경우, 나중에 입력받은 배열이 더 긴 경우로 나눠 탐색을 진행한다. 작은 배열을 한 칸씩 옮겨가며 탐색을 진행하여, 곱한 값을 저장한 후, 그 값이 최댓값일 때 결과값을 변경한다. 위 과정을 반복하며, 얻은 최댓값을 형식에 맞게 출력한다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer;..

[Java] SWEA 1974번 스도쿠 검증

문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 가로, 세로, 정사각형별로 탐색을 진행하여 겹치는 숫자가 없는지 확인한다. 두 가지 방법이 있다. 1. 1부터 9까지 더한 값이 45이므로 모든 값을 더한 결과가 45가 아닌 경우 flag값을 false로 변경 2. 0부터 8번지까지 있는 배열을 생성하여 스도쿠에 저장 되어있던 값들을 번지수에 저장 (저장되어있는 값이 0 ~ 8이 아닌 1 ~ 9이므로 -1번째에 저장 해야한다.) -> 이 방법 사용 flag의 값이 false이면 1부터 9까지 모든 숫자가 들어있지 않은 경우이므로 0을 출력하고, true면 1을 출력한다. 코드 import java..