본문 바로가기
반응형

전체 글252

[백준][Python] 14503번 로봇 청소기 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 코드 n,m = map(int,input().split()) r,c,d = map(int,input().split()) graph = [] back_x = [1,0,-1,0] back_y = [0,-1,0,1] # 북,동,남,서 순서대로 뒤쪽 방향 front_x = [-1,0,1,0] front_y = [0,1,0,-1] dir = [0,1,2,3] def check(a,b): for i in range(4): i.. 2023. 4. 4.
[백준][JAVA] 9742번 순열 9742번: 순열 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 문자열은 서로 다른 숫자와 알파벳으로 이루어져 있으며, 길이는 최대 10이다. 또한, 사전 www.acmicpc.net 문제 집합의 순열이란 집합의 서로 다른 원소를 모두 사용해 만들 수 있는 순서이다. 예를 들어, {2,3,5}의 순열은 다음과 같다. 2 3 5 2 5 3 3 2 5 3 5 2 5 2 3 5 3 2 각각의 순열은 숫자로 나타낼 수 있다. 위의 순열은 사전순으로 쓰여져 있으며, 등장하는 순서를 이용해 나타낸다. 즉, 3 5 2는 위치 4에 있고, 5 3 2는 마지막 위치인 6에 있다. {b,e,i,n}으로 만들 수 있는 순열은 다음과 같다. b e i n b e n i.. 2023. 3. 15.
[백준][JAVA] 10986번 나머지 합 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new .. 2023. 3. 13.
[백준][JAVA] 2018번 수들의 합 5 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int start = 1; int end = 1; int num = 1; int ans = 0; while(start 2023. 3. 10.
[백준][Python] 15686번 치킨 배달 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 코드 from itertools import combinations n,m = map(int,input().split()) graph = [list(map(int,input().split())) for _ in range(n)] chicken = [] house = [] for i in range(n): for j in range(n): if graph[i][j] == 2: chicken.append((i,j)) elif graph[i][j].. 2023. 3. 6.
[백준][Python] 2961번 도영이가 만든 맛있는 음식 2961번: 도영이가 만든 맛있는 음식 첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는 그 재료의 신맛과 쓴맛이 공백으로 구분되어 주어진다. 모든 재료를 사용해서 요리를 만들었을 때, 그 요리의 신맛과 쓴맛은 www.acmicpc.net 코드 from itertools import combinations n = int(input()) ing = [list(map(int,input().split())) for _ in range(n)] n_min = int(1e9) for comb in (combinations(ing,i+1) for i in range(n)): for c in comb: sour, bitter = 1,0 for a,b in c: sour *= a bitter.. 2023. 3. 3.
[백준][Python] 2470번 두 용액 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 코드 import sys n = int(input()) n_list = list(map(int,sys.stdin.readline().split())) start = 0 end = n-1 min_n = 2000000001 n_list.sort() while start < end: num = n_list[end] + n_list[start] if num == 0: answer = [n_list[start],n_list[end]] b.. 2023. 3. 2.
[백준][Python] 21921번 블로그 21921번: 블로그 첫째 줄에 $X$일 동안 가장 많이 들어온 방문자 수를 출력한다. 만약 최대 방문자 수가 0명이라면 SAD를 출력한다. 만약 최대 방문자 수가 0명이 아닌 경우 둘째 줄에 기간이 몇 개 있는지 출력한다 www.acmicpc.net 코드 n,x = map(int,input().split()) visit = list(map(int,input().split())) v_max = sum(visit[:x]) num = sum(visit[:x]) cnt = 1 for i in range(x,n): num = num - visit[i-x] + visit[i] if num > v_max: v_max = num cnt = 1 elif num == v_max: cnt += 1 if v_max == 0.. 2023. 2. 28.
[백준][Python] 1654번 랜선 자르기 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 코드 import sys k,n = map(int,input().split()) arr = [] for _ in range(k): arr.append(int(sys.stdin.readline())) start = 1 end = max(arr) while start = n: start = mid+1 else: end = mid-1 print(end) 설명 이진탐색을 사용하여 풀었다. 길이는 1부터 가장 긴 랜선의 길이 사이에 있어야 한.. 2023. 2. 27.
반응형