Algorithm/Broute Force 8

[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] 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] 백준 19532번 수학은 비대면강의입니다

문제 19532번: 수학은 비대면강의입니다 정수 $a$, $b$, $c$, $d$, $e$, $f$가 공백으로 구분되어 차례대로 주어진다. ($-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식을 만족하는 $\left(x,y\right)$가 유일하게 존재하고, 이 때 $x$와 $y$가 각각 $- www.acmicpc.net 입력 정수 a,b,c,d,e,f 가 공백으로 구분되어 차례대로 주어진다. (−999 ≤ a,b,c,d,e,f ≤ 999$-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식을 만족하는 (x , y)가 유일하게 존재하고, 이 때 x와 y가 각각 −999이상 999이하의 정수인 경우만 입력으로 주어짐이 보장된다. 출력 문제의 답인..

[Python] 1436번 영화감독 숌

문제 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워 www.acmicpc.net 입력 첫째 줄에 N이 주어진다. N은 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 N번째 영화의 제목에 들어간 수를 출력한다. 입력 예제 2 출력 예제 1666 문제 풀이 단순하게 666부터 1씩 증가시켜가면서, 666이 들어있는 n번째 작은 숫자의 값을 구하여 출력한다. 코드 n = int(input()) six = 666 cnt = 0 while True: if '666' in str(six): cnt += 1 if cnt == n: pr..

[Python] 백준 7568번 덩치

문제 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 입력 첫 줄에는 전체 사람의 수 N이 주어진다. 그리고 이어지는 N개의 줄에는 각 사람의 몸무게와 키를 나타내는 양의 정수 x와 y가 하나의 공백을 두고 각각 나타난다. 출력 여러분은 입력에 나열된 사람의 덩치 등수를 구해서 그 순서대로 첫 줄에 출력해야 한다. 단, 각 덩치 등수는 공백문자로 분리되어야 한다. 입력 예제 5 55 185 58 183 88 186 60 175 46 155 출력 예제 2 2 1 2 5 문제 풀이 입력받은 덩치가 들..

[Python] 백준 2231번 분해합

문제 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다. 입력 예제 216 출력 예제 198 문제 풀이 1부터 n까지 모든 숫자를 탐색하며 분해합을 구한다. 숫자를 1씩 늘려가며 분해하여 더한 값과 i값을 더한 후, 그 값이 n과 같다면 n의 생성자이다. 코드 n = int(input()) for i in range(1, n + 1): num..

[Python] 백준 2798번 블랙잭

문제 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 입력 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장을 찾을 수 있는 경우만 입력으로 주어진다. 출력 첫째 줄에 M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 출력한다. 입력 예제 5 21 5 6 7 8 9 10 500 93 181 2..