[백준 15686번] 치킨 배달
15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net import itertools def calculate_distance(r1,c1,r2,c2): return abs(r1-r2) + abs(c1-c2) n, m = map(int,input().split()) input_city = [list(map(int,input().split())) for _ in range(n)] chicken_house_list = set() house_list = set() min_value = float("inf..
2023. 8. 20.
[백준 1476번] 날짜 계산
E, S, M = map(int,input().split()) RESULT_RANGE = 15*28*19 + 1 for i in range(RESULT_RANGE): a, b, c = i%15 + 1, i%28 + 1, i%19 + 1 if E == a and S == b and M == c: print(i + 1) break 이번 문제는 E, S, M 이라는 수를 가지는 년도를 나타낼 때, 주어진 E, S, M으로 표시되는 가장 빠른 년도를 구하는 문제이다. 다만, 여기서 주의해야할 점은 세 수는 모두 서로 다른 범위를 가진다는 점이다. 이 문제의 풀이에 핵심은 '가능한 경우의 수를 모두 탐색해보는 완전 탐색, 즉 Brute Force 알고리즘을 사용해야 한다는 점'과 '나머지를 활용하여 값을 비교한다..
2023. 5. 4.
[백준 3085번] 사탕 게임
n = int(input()) array = [[] for _ in range(n)] nx = [-1,1,0,0] ny = [0,0,-1,1] for i in range(n): array[i] = list(input()) # 행에서 연속된 문자의 개수를 확인하는 함수 def row_check(x,y): count = 1 for i in range(y,n+1): if i == n-1: break if array[x][i] == array[x][i+1]: count += 1 else: break for i in range(y,-1,-1): if i == 0: break if array[x][i] == array[x][i-1]: count += 1 else: break return count # 열에서 연속된..
2023. 5. 2.