백준

    백준 2018: 수들의 합 5

    https://www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 n = int(input()) sum = 1 count = 1 start_index = 1 end_index = 1 while end_index!=n: if sum

    백준 11660: 구간 합 구하기 5

    https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import sys input = sys.stdin.readline n, m = map(int, input().split()) a = [[0]*(n+1)] s = [[0]*(n+1) for _ in range(n+1)] for i in range(n): al = [..

    백준 11659번: 구간 합 구하기 4

    https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 import sys input = sys.stdin.readline #안하면 python3에서 시간초과 발생 n, m = map(int, input().split()) a = list(map(int, input().split())) s = [0]*(n+1) for i in range(1,n+1): s[i] = s[i-1]+a[..

    알고리즘: 이진 트리 경로 길이 구하기

    class TNode: def __init__ (self,data, left, right): self.data = data self.left = left self.right = right def count_node(n): if n is None: return 0 else: return 1+count_node(n.left) + count_node(n.right) def path_length(root,totalNodes): if (totalNodes == 1)or(totalNodes==0) : return 0; noOfNodes1 = count_node(root.left) noOfNodes2 = count_node(root.right) return ( path_length(root.left, noOfNode..

    백준 1260번: DFS와 BFS

    1260번: DFS와 BFS (acmicpc.net) 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 from collections import deque import sys n,m,start..

    백준 10828번: 스택

    10828번: 스택 (acmicpc.net) 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import sys from collections import deque n = int(input()) que = deque() for i in range(n): command = list(map(str,sys.stdin.readline().split())) if comman..

    백준 10845번: 큐

    10845번: 큐 (acmicpc.net) 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 import sys from collections import deque n = int(input()) que = deque() for i in range(n): command = list(map(str,sys.stdin.readline().split()))..

    백준 10866번: 덱

    10866번: 덱 (acmicpc.net) 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 import sys from collections import deque n = int(input()) dq = deque([]) for i in range(n): command = list(map(str,sys.stdi..

    백준 1920번: 수 찾기

    1920번: 수 찾기 (acmicpc.net) 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import sys n = int(input()) word = list(map(int, sys.stdin.readline().split())) m = int(input()) w = list(map(int, sys.stdin.readline().split..

    백준 10989번: 수 정렬하기 3

    10989번: 수 정렬하기 3 (acmicpc.net) 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 import sys n = int(input()) num = [0]*10001 for i in range(n): number = int(sys.stdin.readline()) num[number] = num[number] +1 for i in range(10001): if num[number]!=0: for j in range(num[i]): print(i) cs 💡 예전에 못 풀었던 ..