[python] 백준 -Z
·
파이썬/백준
문제 www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서 www.acmicpc.net 문제풀이 N이 1이 될때까지, 주어진 맵을 4등분하고, 현재 숫자가 몇사분면에 있는지 확인하며 N을 줄여나간다. 코드 N,r,c = list(map(int,input().split())) result = 0 while N>=1 : temp = 2**(N-1) - 1 # 2사분면 if r
[python] 백준 - 트리순회.py
·
파이썬/백준
문제 www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1≤N≤26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 영문자 www.acmicpc.net 문제풀이 순서대로 전위순회 -> 중위 순회 -> 후위 순회를 출력하면된다. 코드 class Node: def __init__(self,data,left_node, right_node): self.data = data self.left_node = left_node self.right_node = right_node # 전위 순회 def pre_order(node): print(node.data, en..
[python] 백준 - 저항
·
파이썬/백준
문제 www.acmicpc.net/problem/1076 1076번: 저항 첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 색은 모두 위의 표에 쓰여 있는 색만 주어진다. www.acmicpc.net 문제 풀이 각 단어에 맞는 숫자를 딕셔너리 형태로 생성 그리고 각 단어에 해당하는 숫자를 n이라고한다면 , 곱에 해당하느숫자는 10^n 꼴이다. 마지막으로 조건에 맞게 출력하면된다. 코드 dic = {'black':'0', 'brown':'1', 'red':'2', 'orange':'3', 'yellow':'4', 'green':'5', 'blue':'6', 'violet':'7', 'grey':'8', 'white':'9'} a= input() b= input() c=..
[python] 백준 - 이항 계수 2
·
파이썬/백준
문제 www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 문제풀이 이항계수는 파스칼의삼각형 모양으로 나온다. 이것을 이용하여 문제를 해결할 수 있다. 먼저 파스칼의 삼각형에 맞게 점화식을 세워 준다. 그다음 각행의 맨처음과 마지막은 1로 채우고 중간 부분은 dp[i][j] = dp[i-1][j-1] + dp[i-1][j] 로 채워주면된다. 코드 # 이항계수 2 n, k = map(int, input().split()) dp = [[0] * 1 for i in range(1002)] dp[1].append(1) for i in ran..
[python] 백준 - 쉬운 계단수
·
파이썬/백준
문제 www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 문제 풀이 계단수는 인접한 모든 자리수의 차이가 1이 나기때문에 점화식을 다음과 같이 세움 j == 0 일때 -> dp[j] = dp[j+1] j = (1~8) -> dp[j] = dp[j-1] + dp[j+1] j = 9 -> dp[j] = dp[j-1] 그리고 각 연산 수행시 % 연산도 함께 수행. 코드 # 쉬운 계단수 n = int(input()) dp = [0] * 10 dp_prev = [0]*10 for i in range(1,10): dp[i] = 1 for i in range(1,n): dp_prev = ..
[python] 백준 - 설탕배달
·
파이썬/백준
문제 www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제 풀이 sugar 리스트를 만들어 dp로 문제해결. 먼저 5킬로그램 봉지를 사용할 수 있는 경우의 수를 계산하고 (1) dp [i] = dp[i-3] +1 의 점화식을 사용하여 문제해결 (2) 코드 # 설탕배달 n = int(input()) sugar = [int(1e9)]*(n+1) # 5킬로그램 봉지 먼저 사용하는 경우의 수 계산 for i in range(3,n+1): if i % 5 ==0: sugar[i..
ariz1623
'python' 태그의 글 목록 (5 Page)