백준 2845 - python 풀이
·
Algorithm/백준
구현부터 차근차근 연습 import sys input = sys.stdin.readline # L은 사람의 수 # P는 파티장 넓이 L, P = map(int, input().split()) attend = list(map(int, input().split())) real = L * P for i in attend: print(i - real, end=' ')
백준 1550- 16진수 python (구현)
·
Algorithm/백준
파이썬 내장함수를 이용하면 해당 진수로 쉽게 변환이 가능하다. import sys input = sys.stdin.readline #파이썬 내장함수 print(int(input(),16)) www.acmicpc.net/problem/1550 1550번: 16진수 첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다. www.acmicpc.net
백준 7562 - python bfs로 푼 풀이
·
Algorithm/백준
BFS 정복하려고 BFS문제만 엄청 푸는 중.. from collections import deque import sys input = sys.stdin.readline dx = [1, 2, 2, 1, -1, -2, -2, -1] dy = [-2, -1, 1, 2, -2, -1, 1, 2] def bfs(x, y, end_x, end_y): q = deque() #초기 위치를 큐에 넣어준다 q.append([x, y]) M[x][y] = 1 while q: x, y = q.popleft() if x == end_x and y == end_y: # 13행에 값을 더해주기 위해 추가했던 초기값 1을 빼준다. return M[x][y] - 1 for i in range(8): nx = x + dx[i] ny ..
백준 11725- 트리의 부모 찾기
·
Algorithm/백준
bfs로 풀어주었다. from collections import deque import sys input = sys.stdin.readline N = int(input()) G = [[] for i in range(N+1)] for _ in range(N-1): a, b = map(int, input().split()) G[a].append(b) G[b].append(a) q=deque() q.append(1) ancestor = {} checked = [0] * (N+1) while q: parent = q.popleft() for i in G[parent]: if not checked[i]: ancestor[i] = parent q.append(i) checked[i] = 1 for i in rang..
백준 11724 연결 요소의 개수- 파이썬 풀이
·
Algorithm/백준
from collections import deque import sys input = sys.stdin.readline N, M = map(int,input().split()) G = [[] for _ in range(N+1)] visited = [0] * (N+1) for _ in range(M): u, v = map(int, input().split()) G[u].append(v) G[v].append(u) q = deque() connect = 0 for i in range(1,N+1): #만약 방문하지 않았으면 if visited[i] == 0: #방문 처리 해주고 visited[i] = 1 #큐에 추가 q.append(i) #연결되는 갯수 늘어났으므로 하나 추가 connect += 1 #큐가 ..
알고리즘 시각화 사이트
·
Algorithm
알고리즘을 시각화 해주는 유용한 사이트이다. https://visualgo.net/ko VisuAlgo - 영상을 통한 자료구조와 알고리즘의 시각화 (한국어판) (Korean) VisuAlgo is free of charge for Computer Science community on earth. If you like VisuAlgo, the only payment that we ask of you is for you to tell the existence of VisuAlgo to other Computer Science students/instructors that you know =) via Facebook, Twitter visualgo.net
백준 1010번 다리놓기(python3)
·
Algorithm/백준
다리를 그림으로 그리고 규칙성을 파악하면 쉽게 풀 수 있는 문제이다. 첫번째 n의 다리와 첫번째 m의 다리를 이어놓고 그 아래의 다리를 보면, 이전에 적용된 다리의 경우의 수가 계속 적용되어 나옴을 확인할 수 있다. n이 1일 경우 m과 같아서 for문 이용해서 미리 만들어주고 그 아래에 위의 공통된 로직을 짜면 된다. 전형적인 dp문제이지만 다른 사람들 풀이를 보니 조합을 이용해서도 많이 푼 것 같다. # https://www.acmicpc.net/problem/1010 array = [[0] * 30 for _ in range(30)] for i in range(1, 30): array[1][i] = i for i in range(2, 30): for j in range(i, 30): for k in..
백준 13301 타일깔기
·
Algorithm/백준
# https://www.acmicpc.net/problem/13301 # 표로 정리하면 금방 규칙성을 파악할 수 있다. # 타일 개수 1 2 3 4 5 6 7 # 둘레 4 6 10 16 26 42 68 # f(n) = f(n-1) + f(n-2) 의 규칙으로 증가함을 알 수 있다. n = int(input()) answer = [0, 4, 6] def get_circumference(n): if n == 1: return 4 if n == 2: return 6 else: for i in range(3, 81): answer.append(answer[i-1] + answer[i-2]) return answer[n] print(get_circumference(n)) 13301번: 타일 장식물 대구 달성공원..
백준 9625-python 풀이
·
Algorithm/백준
전형적인 dp문제 버튼을 누르는 횟수 별 a와 b횟수를 표로 정리하면 금방 해결방법을 찾을 수 있다. /누르는 횟수 0 1 2 3 결과 A B BA BAB A개수 1 0 1 1 B개수 0 1 1 2 각각의 a,b 개수 별로 현재 인덱스의 개수 = 전 인덱스 개수 + 전전 인덱스 개수 의 규칙임을 한 눈에 알 수 있다. # https://www.acmicpc.net/problem/9625 # 전형적인 f(n) = f(n-1) + f(n-2) 구조임 # 입력 : 버튼 눌리는 횟수: k # 출력 : 사용자가 k번 눌렀을때 결과창에 뜬 a 개수와 b의 개수 k = int(input()) #버튼을 누른 횟수 만큼 a횟수와 b횟수를 각각 나누어 배열로 정리해 보자면 다음과 같다. #클릭:0 1 a = [1, 0] ..
takoyummy
'Algorithm' 카테고리의 글 목록 (6 Page)