개발노트(150)
-
(브루트 포스) 체스판 다시 칠하기
이 문제의 저작권은 BAEKJOON에 있습니다. https://www.acmicpc.net/problem/1018 문제는 위 링크에서 확인할 수 있습니다. def change(color): if color == 'W': color = 'B' else: color = 'W' return color N, M = map(int, input().split()) bd = [input() for _ in range(N)] #N은 Y 축 M은 X축이다. #체스판은 8 * 8 크기만 지정가능 X_size = M - 8 Y_size = N - 8 temp = [] #총 바뀐 값을 담는 리스트 for y in range(0, Y_size + 1): for x in range(0, X_size + 1): #첫 칸의 색을 알..
2020.02.28 -
(정렬) 나이순 정렬
이 문제의 저작권은 BAEKJOON에 있습니다. https://www.acmicpc.net/problem/10814 문제는 위 링크에서 확인할 수 있습니다. #나이순 정렬 import sys temp = [] N = int(sys.stdin.readline()) for t in range(N): A, B = sys.stdin.readline().split() A = int(A) temp.append([A, B]) while 1: cnt = 100001 point = [] if len(temp) == 0: break for i in range(len(temp)-1, -1, -1): if temp[i][0]
2020.02.24 -
(수학) 부녀회장이 될테야
이 문제의 저작권은 BAEKJOON에 있습니다. https://www.acmicpc.net/problem/2775 문제는 위 링크에서 확인할 수 있습니다. #부녀회장이 될테야 for t in range(int(input())): k = int(input()) n = int(input()) get_num = [j for j in range(1, n+1)] for _ in range(0, k): temp = [] for i in range(0, n): temp.append(sum(get_num[:i+1])) get_num = temp print(get_num[n-1]) k층 n호에 살고 있다면 k-1층의 n호까지의 합만큼 사람이 살고 있어야 합니다. 따라서 k번 반복하고 k층까지 모든 층의 1 ~ n호에 살..
2020.02.24 -
(수학) ACM 호텔
이 문제의 저작권은 BAEKJOON에 있습니다. https://www.acmicpc.net/problem/10250 문제는 위 링크에서 확인할 수 있습니다. #ACM 호텔 for t in range(int(input())): H, W, N = map(int, input().split()) if N % H == 0: f = H Room_num = ( N // H ) else: f = ( N % H ) Room_num = ( N // H ) + 1 if Room_num < 10: Room_num = "0" + str(Room_num) answer = str(f) + str(Room_num) print(answer) 몫과 나머지를 이용해서 층수와 호수를 구하는 문제입니다. H는 호텔 꼭대기층, W는 복도 맨 ..
2020.02.23 -
인접리스트, BFS
그래프의 경로가 리스트로 주어질 경우 딕셔너리를 사용한 인접 리스트로 바꾸고 BFS로 탐색하는 방법입니다. V, E = 6, 5 my_list = [[1,4],[1,3],[2,3],[2,5],[4,6]] S, G = 1, 6 V는 노드의 수 E는 간선의 수 입니다. S는 시작 노드 G는 목표 노드입니다. my_list가 주어졌을 때 S 에서 G까지 간선이 연결되어있는지 알아보기위해 BFS를 사용했습니다. 우선 주어진 리스트를 딕셔너리로 바꿔줬습니다. graph = {i : set([]) for i in range(1, V+1)} for j in my_list: if j[0] in graph: graph[j[0]] = graph[j[0]] | set([j[1]]) if j[1] in graph: graph..
2020.02.19 -
(스택) 종이붙이기
이 문제의 저작권은 SW Expert 아카데미에 있습니다. https://swexpertacademy.com/main/learn/course/subjectDetail.do?courseId=AVuPDN86AAXw5UW6&subjectId=AWOVHzyqqe8DFAWg 문제는 위 링크에서 확인할 수 있습니다. def f(n): #점화식을 잘 세울 필요가 있다. #마지막 경우만 따져본다. #20*20 종이가 하나 #20*10 종이가 하나 #10*20 종이 둘 if n < 2: return 1 return f( n-1 ) + 2 * f( n-2 ) for t in range(int(input())): N = int(input()) // 10 print(f"#{t+1} {f(N)}") 가로 30인 종이를 만든다고..
2020.02.19