Python265 [Python] 2차원 배열 부분 회전 코드 def partial_rotate90(area,x,y,d): temp_area = [arr[:] for arr in area] for i in range(d): for j in range(d): temp_area[x+j][y+d-1-i] = area[x+i][y+j] for t in temp_area: print(t) return temp_area 회전시킬 부분 배열의 시작점(좌측 상단) 좌표 : x,y회전시킬 부분 배열의 크기 : d기존 회전 코드에서 N을 d로 바꾸고 모든 좌표에 x와y를 더하면 된다. 2025. 4. 12. [삼성 SW 역량테스트 기출] 루돌프의 반란 import sysfrom collections import dequeinput = sys.stdin.readline# 1. 게임판의 구성# N x N 크기의 격자로 이루어져 있음# 게임은 총 M개의 턴에 걸쳐서 진행되며, 매 턴마다 루돌프와 산타들이 1번씩 움직인다.# 루돌프가 1번 움직인 뒤, 1번부터 P번 산타들이 '순서대로' 움직인다.# 이때 기절해있거나 격자 밖으로 빠져나가 게임에서 탈락한 산타는 움직일 수 X !!# 4. 충돌# 산타와 루돌프가 같은 칸에 있게 되면 충돌이 발생한다. # 4-1. 루돌프가 움직여서 충돌이 일어난 경우 # 해당 산타는 C만큼의 점수를 얻게 된다. # 이와 동시에, 산타는 루돌프가 이동해온 방향으로 C칸 만큼 밀려난다. # 4-2. 산타가 움직.. 2025. 4. 11. [삼성 SW 역량테스트 기출] 메두사와 전사들 # N x N 크기의 마을에 도로가 깔려있다. (도로는 0, 비도로는 1)# 집에서 공원까지 산책# 메두사는 오직 도로만을 따라 최단 경로로 공원까지 이동# 메두사의 집과 공원은 항상 도로 위에 있으며(좌표는 서로 다르다고 가정해도 ok)# M명의 전사들이 메두사를 잡기 위해 최단 경로로 이동# 전사들은 도로와 비도로를 구분하지 않고 어느 칸이든 이동 가능# (메두사의 집에 전사들이 초기에 위치하는 경우는 없다고 가정해도 ok)# 메두사는 전사들이 움직이기 전에 그들을 바라봄으로써 돌로 만들어 움직임을 멈출 수 있다.# # # 모든 최단경로 계산은 '맨해튼 거리'를 기준으로 한다 ! ! ! ! !# 1. 메두사의 이동# 메두사는 도로를 따라 1칸 이동하며 공원까지 최단 경로를 따른다. # (만약 집에서 .. 2025. 4. 6. [백준 5212번] 지구 온난화 https://www.acmicpc.net/problem/5212 import sysinput = sys.stdin.readline# 'X'는 땅을 나타내고, '.'는 바다를 나타낸다.# 50년이 지나면, 인접한 세 칸 또는 네 칸에 바다가 있는 땅은 모두 잠겨버린다# 상근이는 50년 후 지도를 그려보기로 했다.# 섬의 개수가 오늘날보다 적어질 것이기 때문에, 지도의 크기도 작아져야 한다.# 지도의 크기는 모든 섬을 포함하는 가장 작은 직사각형이다.# 50년이 지난 후에도 섬은 적어도 한 개 있다. # 또, 지도에 없는 곳, 지도의 범위를 벗어나는 칸은 모두 바다이다.R, C = map(int,input().split())area = [list(input().rstrip()) for _ in range(.. 2025. 1. 2. [Python] 2차원 배열 90/180/270도 회전 구현 코드 1) 시계 방향으로 90도 회전def rotate90(arr): N = len(arr) new_area = [[0]*N for _ in range(N)] for i in range(N): for j in range(N): new_area[j][N-1-i] = arr[i][j] return new_area 2) 시계/반시계 방향으로 180도 회전def rotate180(arr): N = len(arr) new_area = [[0]*N for _ in range(N)] for i in range(N): for j in range(N): new_area[N-1-i][N-1-j] = area[i].. 2024. 10. 13. [Python] 파이썬 순열/중복순열/조합/중복조합 구현 코드 (Backtracking 활용) 1) 순열def permutations(arr, k): cases = [] visited = [False]*(len(arr)) def dfs(elements): if len(elements) == k: cases.append(elements) return for i in range(len(arr)): if not visited[i]: visited[i] = True dfs(elements + [arr[i]]) visited[i] = False dfs([]) return casesp.. 2024. 10. 13. 이전 1 2 3 4 ··· 45 다음