본문 바로가기

Python262

[백준 14500번] 테트로미노 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net n, m = map(int,input().split()) area = [list(map(int,input().split())) for _ in range(n)] visited = [[False]*m for _ in range(n)] dx = [-1,1,0,0] dy = [0,0,-1,1] answer = -1 max_value = max(map(max,area)) def dfs(x,y,movement,value): global answer # 가지치기(나머지 값들.. 2023. 8. 25.
[백준 9205번] 맥주 마시면서 걸어가기 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net from collections import deque def calculate_distance(x1,y1,x2,y2): return abs(x1-x2) + abs(y1-y2) def bfs(x,y): global end_x, end_y queue = deque([(x,y)]) visited = set() while queue: x, y = queue.popleft() if calculate_distance(x,y,end_x,end_y) 2023. 8. 24.
[백준 9207번] 페그 솔리테어 9207번: 페그 솔리테어 각 테스트 케이스에 대해서, 핀을 움직여서 남길 수 있는 핀의 최소 개수와 그 개수를 만들기 위해 필요한 최소 이동 횟수를 출력한다. www.acmicpc.net from collections import deque n = int(input()) dx = [-1,1,0,0] dy = [0,0,-1,1] dx_2 = [-2,2,0,0] dy_2 = [0,0,-2,2] result = [] def move(movetime): global min_count, min_movement pin_list = [] for i in range(5): for j in range(9): if area[i][j] == 'o': pin_list.append((i,j)) if len(pin_list) .. 2023. 8. 23.
[Python] 리스트 자료형 메소드 remove() / del / pop() 차이 파이썬 리스트(List)의 remove, del, 그리고 pop 메서드는 모두 리스트의 요소를 삭제하는 데 사용되지만, 조금씩 다른 방식으로 작동합니다. 1. remove() 메소드 my_list = [1, 2, 3, 2, 4] my_list.remove(2) # 첫 번째 2가 삭제됨 print(my_list) # [1, 3, 2, 4] 사용법: list.remove(value) 주어진 값과 동일한 첫 번째 요소를 찾아 삭제합니다. 만약 리스트에 동일한 값이 여러 개 있을 경우, 가장 왼쪽에 있는 첫 번째 값을 삭제합니다. 해당 값이 리스트에 없을 경우 ValueError 예외가 발생합니다. 2. del 키워드 Copy code my_list = [1, 2, 3, 4, 5] del my_list[2] #.. 2023. 8. 23.
[백준 15684번] 사다리 조작 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net n, m, h = map(int,input().split()) answer = 4 def check(): # i번에서 시작한 세로선이 i번에서 끝나는지 확인하는 함수 for i in range(n): temp = i # 이동하는 세로선 위치 for j in range(h): if ladder[j][temp] == 1: # 오른쪽이 1인 경우(오른쪽으로 가로선이 쳐져있는 경우) temp += 1 elif temp > 0 and ladder[j][temp-1] ==.. 2023. 8. 21.
[백준 16724번] 피리 부는 사나이 16724번: 피리 부는 사나이 첫 번째 줄에 지도의 행의 수를 나타내는 N(1 ≤ N ≤ 1,000)과 지도의 열의 수를 나타내는 M(1 ≤ M ≤ 1,000)이 주어진다. 두 번째 줄부터 N개의 줄에 지도의 정보를 나타내는 길이가 M인 문자열이 주 www.acmicpc.net import sys sys.setrecursionlimit(10**5) n,m = map(int,input().split()) area = [list(sys.stdin.readline().rstrip()) for _ in range(n)] visited = [[-1]*m for _ in range(n)] count = 0 index = 0 def dfs(x,y,idx): global count if visited[x][y] !=.. 2023. 8. 20.