python 백준 16926 배열 돌리기 1
·
코테공부
🐹 문제https://www.acmicpc.net/problem/16926    🐹 풀이한 층을 리스트로 반환 하여 queue의rotate를 사용하여 회전한다.import sysfrom collections import dequedef rotate_layer(layer, R): """한 층의 요소를 R번 회전한 후 반환""" queue = deque(layer) queue.rotate(-R) # 왼쪽으로 R번 회전 return list(queue)def get_layer(matrix, layer_idx, N, M): """layer_idx 번째 껍질의 요소들을 추출""" layer = [] # 위(왼쪽 → 오른쪽) for j in range(layer_id..
파이썬 백준 17825번 : 주사위 윷놀이
·
Algorithm/python 백준
문제 https://www.acmicpc.net/problem/17825  풀이# 그래프의 각 인덱스는 보드의 각 칸 # 값은 이동할 수 있는 다음 칸(들)graph = [[1], [2], [3], [4], [5], [6, 21], [7], [8], [9], [10], [11, 25], [12], [13], [14], [15], [16, 27], [17], [18], [19], [20], [32], [22], [23], [24], [30], [26], [24], [28], [29], [24], [31], [20], [32]]# 각 칸의 점수를 저장한 리스트.score = [0, 2, 4, 6, 8, 10,..
파이썬 백준 14891번: 톱니바퀴
·
Algorithm/python 백준
문제https://www.acmicpc.net/problem/14891  ⚙️풀이주어진대로 구현하면 되는 문제였다.주위의 톱니바퀴를 움직이는데 재귀를 활용했다. 톱니바퀴를 돌리는데에는 deque를 활용했다. import sysfrom collections import dequesys.setrecursionlimit(1000000000)def rotation(num,d): #print(num,visited,d) visited.add(num) if num-1>=0 and num-1 not in visited: #왼쪽 옆 톱니바퀴 확인 if Gear[num-1][2]!=Gear[num][6]: rotation(num-1,d*-1) if num+1
파이썬 백준 15686번 : 치킨 배달
·
Algorithm/python 백준
문제https://www.acmicpc.net/problem/15686  🍗풀이N,M의 범위가 작아 브루트포스로 모든 경우의 수를 고려했다.   import sysfrom itertools import combinationsN,M=map(int,sys.stdin.readline().split())home=[]chicken=[]for i in range(N): temp=list(map(int,sys.stdin.readline().split())) for j in range(N): if temp[j]==1: home.append((i,j)) if temp[j]==2: chicken.append((i,j))combs=list(comb..
파이썬 백준 22856번 : 트리 순회
·
Algorithm/python 백준
문제https://www.acmicpc.net/problem/22856   🌳풀이문제에 주어진대로 order함수를 구현했다.종료조건이 순회의 끝은 중위순회의 마지막 조건이다 때문에 중위순회한 결과를 저장할 리스트 visited_in을 따로 만들었다. import syssys.setrecursionlimit(1000000)N=int(sys.stdin.readline())Right=[[] for _ in range(N+1)]Left=[[] for _ in range(N+1)]visited_in=[1] #중위 순회 결과를 저장할 리스트 #Right와 Left 리스트에 자식노드번호를 넣음 for _ in range(N): v1,v2,v3=map(int,sys.stdin.readline().split())..
파이썬 백준 14499번 : 주사위 굴리기
·
Algorithm/python 백준
문제https://www.acmicpc.net/problem/14499   🎲풀이 주어진 전개도에서 동,서,북,남으로 이동하면 어떻게 변할지를 구하고 move 함수로 구현하였다.(초기에는 윗 면이 1이고, 동쪽을 바라보는 방향이 3인 상태로 놓여져있다.)  def move(i): global dice if i == 1: # 동쪽 : 1,2,3,4,5 -> 4,2,1,6,5,3 sequence=[3,1,0,5,4,2] elif i == 2: # 서쪽 : 1,2,3,4,5 -> 3,2,6,1,5,4 sequence = [2,1,5,0,4,3] elif i == 3: # 북쪽 : 1,2,3,4,5 -> 5,1,3,4,6,2 sequence=[4,0,..
파이썬 백준 1717번 : 집합의 표현
·
Algorithm/python 백준
문제https://www.acmicpc.net/problem/1717  풀이크루스칼 알고리즘의 find_set, union을 이용해서 풀었다.부모가 같으면 같은 집합에 해당한다. import syssys.setrecursionlimit(1000000)n, m = map(int, sys.stdin.readline().split())parent = [i for i in range(n + 1)] # 부모집합 초기화 (처음엔 자기 자신을 부모로 가짐)def find_set(x): #부모 찾기 if parent[x] != x: parent[x] = find_set(parent[x]) return parent[x]def union(a, b): # union -> 그룹 합치기 a = ..
파이썬 백준 3190번 : 뱀
·
Algorithm/python 백준
문제https://www.acmicpc.net/problem/3190  풀이뱀의 좌표를 deque에 넣어서 관리한다. 이후는 문제의 조건대로 구현하면 되는 문제였다. import sysfrom collections import dequeN=int(sys.stdin.readline())K=int(sys.stdin.readline())apple=[]turn=deque()snake=deque()go=[(0,1),(1,0),(0,-1),(-1,0)] # 이동 방향 오른쪽, 아래, 왼쪽, 위snake.append((1,1))for _ in range(K): #사과 좌표 저장 x,y=map(int,sys.stdin.readline().split()) apple.append((x,y))L= int(sys...
파이썬 백준 2011번 : 암호코드
·
Algorithm/python 백준
문제https://www.acmicpc.net/problem/2011  풀이알고리즘DP숫자는 한자리수로 들어가거나, 두자리수로 들어갈 경우가 있다. 1. 현재자리수가 0보다 클때 -> 이전 dp값 더하기 (마지막에 원소 하나만 플러스됨)2. 현재자리수와 이전 자리수를 합쳤을때 10~26사이의 수일때 -> 전전dp 값 더하기 import sysN=sys.stdin.readline().strip()d=[0]*(len(N)+1)if N[0]=='0': print(0) exit()d[0]=1d[1]=1for i in range(2,len(N)+1): if int(N[i-1])>0: #한자리수로 들어갈때 d[i]+=d[i-1] if 26>=int(N[i-2]+N[i-1])>=10..
파이썬 백준 5557번 : 1학년
·
Algorithm/python 백준
문제https://www.acmicpc.net/problem/5557   🎒풀이알고리즘다이나믹프로그래밍자료구조딕셔너리 1. 수와 그 수의 개수를 각각 key와 value로 갖는 딕셔너리를 선언한다.2. 입력받은 nums에서 수를 하나씩 꺼내며 딕셔너리를 업데이트한다. 2-1. 업데이트는 더한수가 20이하일때, 뺀 수가 0이상일때 temp 딕셔너리의 수를 증가시키는 방식으로 이루어진다.2-2. 딕셔너리에 있던 모든 값이 업데이트되면 nums_dict가 temp로 업데이트 된다.3. 더해서 result가 된 수의 개수이므로 nums_dict[result]를 출력한다. import sysfrom collections import dequeN = int(sys.stdin.readline())nums = deq..
✿(๑❛ڡ❛๑)✿
'백준' 태그의 글 목록