분류 전체보기 241

[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..

[Python] 백준 1158번 요세푸스 문제

문제 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 입력 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) 출력 예제와 같이 요세푸스 순열을 출력한다. 입력 예제 7 3 출력 예제 문제 풀이 k - 1 번째 값까지 pop해서 큐의 뒤에 붙인다. 그 후, 맨 앞의 값이 k번째 값이므로, pop해서 answer에 붙인다. 위 과정 반복하여, answer에 요세푸스 순열 저장 후, 출력 형식 맞추기 위해, answer의 값들을 int가 아닌 문자로 바꾼다. 형식에 맞게 출력한다. 코드 from collections import deque n,k = map(..

[Python] 백준 1913번 달팽이

문제 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net 입력 첫째 줄에 홀수인 자연수 N(3 ≤ N ≤ 999)이 주어진다. 둘째 줄에는 위치를 찾고자 하는 N2 이하의 자연수가 하나 주어진다. 출력 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 출력한다. 입력 예제 7 35 출력 예제 49 26 27 28 29 30 31 48 25 10 11 12 13 32 47..

[Python] 백준 17413번 단어 뒤집기2

문제 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 입력 첫째 줄에 문자열 S가 주어진다. S의 길이는 100,000 이하이다. 출력 첫째 줄에 문자열 S의 단어를 뒤집어서 출력한다. 입력 예제 baekjoon online judge ef gh 출력 예제 noojkeab enilno egduj fe hg 문제 풀이 괄호를 만나는 경우와 문자나 숫자를 만나는 경우, 공백을 만나는 경우 세 가지로 나눠 탐색한다. 열린괄호()를 만날 때 까지 인덱스 증가시킨다. 닫힌 괄호를 만났다면..

[Python] 백준 1138번 한 줄로 서기

문제 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net 입력 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 크거나 같고, N-i보다 작거나 같다. i는 0부터 시작한다. 출력 첫째 줄에 줄을 선 순서대로 키를 출력한다. 입력 예제 4 2 1 1 0 5 0 0 0 0 0 출력 예제 4 2 1 3 1 2 3 4 5 문제 풀이 이중 for문을 돌리면서, arr..

Algorithm/Greedy 2023.06.16

[Python] 백준 2615번 오목

문제 2615번: 오목 오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호 www.acmicpc.net 입력 19줄에 각 줄마다 19개의 숫자로 표현되는데, 검은 바둑알은 1, 흰 바둑알은 2, 알이 놓이지 않는 자리는 0으로 표시되며, 숫자는 한 칸씩 띄어서 표시된다. 출력 첫줄에 검은색이 이겼을 경우에는 1을, 흰색이 이겼을 경우에는 2를, 아직 승부가 결정되지 않았을 경우에는 0을 출력한다. 검은색 또는 흰색이 이겼을 경우에는 둘째 줄에 연속된 다섯 개의 바둑알 중에서 가장 왼쪽에 있는 바둑알(연속된 다섯 개의 바둑알이 세로로 놓인 경우, 그 중 가장 ..