BOJ

문제 링크 https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 문제 문제 풀이 import sys, math input = sys.stdin.readline n = int(input()) a = list(map(int, input().split())) b, c = map(int, input().split()) result = n for i in a: i -= b if i > 0: result..
문제 링크 https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 문제 문제 풀이 def check(line): runway = [False for _ in range(n)] for i in range(n - 1): # 높이가 같을 경우 패스 if line[i] == line[i + 1]: continue # 높이차가 1보다 클 경우 그 길은 지나갈 수 없음 if abs(line[i] - line[i + 1]) > 1: return False # 높 -> 낮 if line[..
문제 링크 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 문제 문제 풀이 from itertools import combinations n = int(input()) nums = [i for i in range(n)] result = 1e9 s = [] for _ in range(n): s.append(list(map(int, input().split()))) for start in combinations(nums, n//2): link = list(set(num..
문제 링크 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 문제 문제 풀이 import sys n = int(sys.stdin.readline()) nums = list(map(int, sys.stdin.readline().split())) operator = list(map(int, sys.stdin.readline().split())) maximum = -1e9 minimum = 1e9..
문제 링크 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 문제 문제 풀이 from itertools import combinations n, m = map(int, input().split()) chicken, house = [], [] data = [] for _ in range(n): data.append(list(map(int, input().split()))) result = 9999 for r in range(n..
문제 링크 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 문제 문제 N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으..
문제 링크 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 문제 문제 풀이 # 세로 크기 n, 가로 크기 m n, m = map(int, input().split()) # 방문 위치 저장 visited = [[0] * m for _ in range(n)] # 로봇 청소기 좌표와 바라보는 방향 x, y, direction = map(int, input().split()) # 현재 좌표 방문 처리 visited[x][y] = 1 # 전체 맵 ar..
문제 링크 https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 문제 문제 풀이 경우의 수가 많지 않기 때문에 완전 탐색 알고리즘, 즉 브루트 포스 알고리즘으로 해결하는 문제이다. 브루트 포스는 예를 들어 1부터 100까지 중 숫자를 찾을 때 하나씩 더해가며 숫자를 찾아내는 방식을 일컫는다. 이 문제에서는 1년에서 시작하게 되므로, e, s, m를 각각 1, 1, 1로 두고 여기서부터 1씩 늘려가며 (이 때, 결과로 나오는 연도도 1씩 늘려준다) 입력받은..
YOONJELLY
'BOJ' 태그의 글 목록