https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net import sys input=sys.stdin.readline n,m=map(int,input().split()) visited=[False]*(n+1) result=[] def recur(x): if x==m: print(' '.join(map(str,result))) return for i in range(1,n+1): if visited[i]==False: visited[i]=True r..
분류 전체보기
https://www.acmicpc.net/problem/24444 24444번: 알고리즘 수업 - 너비 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양방 www.acmicpc.net import sys from collections import deque n,m,r=map(int,sys.stdin.readline().split()) graph=[[] for _ in range(n+1)] visited=[0 for _ in range(n+1)] def bfs(start): cnt=1 visited[sta..
https://www.acmicpc.net/problem/24479 24479번: 알고리즘 수업 - 깊이 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net import sys sys.setrecursionlimit(10**5) n,m,r=map(int,sys.stdin.readline().split()) visited=[0 for _ in range(n+1)] graph=[[] for _ in range(n+1)] cnt=1 def dfs(start): global cnt vi..
https://www.acmicpc.net/problem/9934 9934번: 완전 이진 트리 상근이는 슬로베니아의 도시 Donji Andrijevci를 여행하고 있다. 이 도시의 도로는 깊이가 K인 완전 이진 트리를 이루고 있다. 깊이가 K인 완전 이진 트리는 총 2K-1개의 노드로 이루어져 있다. (아래 www.acmicpc.net import sys k=int(sys.stdin.readline()) array=list(map(int,sys.stdin.readline().split())) layer=[[] for _ in range(k+1)] for n in range(k,0,-1): i=0 while 2**(k-n)+i*(2**(k-n+1))
https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net import sys class Node: def __init__(self,data,left_node,right_node): self.data=data self.left_node=left_node self.right_node=right_node nodes={} def pre_order(node): print(node.data,end='') if node.left_node!=None: pr..
https://www.acmicpc.net/problem/14244 14244번: 트리 만들기 n과 m이 주어졌을 때, n개의 노드로 이루어져 있고, m개의 리프로 이루어져 있는 트리를 만드는 프로그램을 작성하시오. 항상 정답이 존재하는 경우만 입력으로 주어진다. 트리는 사이클이 없는 www.acmicpc.net import sys n,m=map(int,sys.stdin.readline().split()) print(0,1) for i in range(1,n-m+1): print(i,i+1) if m!=2: for i in range(n-m+2,n): print(n-m,i) m>2인 경우 0번 노드와 마지막 m-1개의 노드를 리프 노드로 만들면 된다. 예로 n=6, m=4일 때, 0번 노드가 하나의 리프..
https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N =s: minimum=1 break if total=s and cnts..
https://www.acmicpc.net/problem/25682 25682번: 체스판 다시 칠하기 2 첫째 줄에 정수 N, M, K가 주어진다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net n,m,k=map(int,input().split()) blackBoard=[[0 for _ in range(m+1)] for _ in range(n+1)] whiteBoard=[[0 for _ in range(m+1)] for _ in range(n+1)] black=True white=False array=[] for i in range(n): array.append(list(input())) for j in range(m): if ..
https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net import sys n,m=map(int,sys.stdin.readline().split()) array=[] prefixSum=[[0 for _ in range(n+1)] for _ in range(n+1)] for i in range(n): array.append(list(map(int,input().split()))) for i in range(1,..
1. 요청 Method에 따른 특화된 메소드 어떤 동작을 수행하는 서블릿 클래스는 method 방식에 따라 위와 같은 분기를 가진다. html 파일에서 form의 메소드 형식이 GET이냐 POST이냐에 따라 각자 다른 함수를 수행한다. 단, 필요에 따라 service 함수를 사용하여 GET/POST 방식 구분없이 같은 동작을 수행시키거나, 방식에 따라 다른 처리를 하더라도 초반 같은 동작을 수행하도록 할 수 있다. - doGet : method가 GET 방식일 때 수행 - doPost : method가 POST 방식일 때 수행 2. 코드 분석 @WebServlet("/calculator") public class Calculator extends HttpServlet{ @Override protected..