목록2025/04/08 (4)
줴림이 공부하줴림
def calc(val, idx): global max_ans global min_ans if idx == n: max_ans = max(max_ans, val) min_ans = min(min_ans, val) if operator[0]: val += nums[idx] operator[0] -= 1 calc(val, idx+1) operator[0] += 1 val -= nums[idx] if operator[1]: val -= nums[idx] operator[1] -= 1 calc(val, idx+1) operator[1]..
더보기https://www.acmicpc.net/problem/15686 - 15686. 치킨 배달이번엔 내가 직접 써보면서 공부. 앞서 봤던 기출에 비해 상당히 쉬운 편인 듯. '''1. 치킨집 조합 구하기 (최대 m개)2. 각 치킨집 조합의 좌표들과 가장 가까운 집 사이의 거리 구하기2-1. 각 치킨집 조합 1개씩2-2. 각 조합 내 치킨집 좌표들과 집 사이의 거리 중 최솟값 구하기3. 도시의 치킨 거리 최솟값 구하기'''def make_combination(select_xy, start=0): if len(select_xy) == m: combination.append(select_xy) return for i in range(start, len(chic..
https://www.acmicpc.net/problem/19236 - 19236. 청소년 상어역시 다른 사람이 쓴 코드를 분석해가면서 알고리즘을 익히는 중.import copydef moveFish(fishes, board, shark): # 물고기들의 움직임 for fishNum in sorted(fishes.keys()): x, y, d = fishes[fishNum] for i in range(8): nx = x + dx[(d+i)%8] ny = y + dy[(d+i)%8] # 가고자 하는 곳이 if nx = 4 or ny >= 4: # 범위 벗어남 => 이동 불가 ..
이름 구려DFS도 BFS도 아닌 시뮬레이션 문제. 처음 풀어보는 유형이라 그냥 진짜 부딪쳐 보는 수밖에 없다.다른 사람의 코드를 하나하나 뜯어보면서 어떤 알고리즘인지 학습했다. def move(x, y, d): global answer total = area[x][y] five_percent = int(total*5/100) ten_percent = int(total*10/100) seven_percent = int(total*7/100) one_percent = int(total*1/100) two_percent = int(total*2/100) a_x, a_y = x+dx[d], y+dy[d] # 앞쪽 1칸 b_x, b_y = x-dx[d]..