전체 글

전체 글

    백준 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[..

    [MongoDB] MongoDB 중복 설치 오류 및 삭제

    MongoDB 중복 설치 오류 및 삭제 기존의 MongoDB를 3.6.3버전을 깔았었는데 버전의 호환성이 맞지 않아서 삭제를 한 후에 4.4버전을 깔았다. 하지만 3.6.3이 제대로 삭제되지 않아서 오류가 계속 발생했다. 이 글은 이러한 오류 내용을 해결하면서 얻은 정보를 기록하기 위해 적는다. MongoDB 삭제 $ apt remove mongodb-org* $ apt-get purge mongodb-org* $ rm -r /var/log/mongodb $ rm -r /var/lib/mongodb $ rm -r /etc/mongodb.conf 패키지 확인 $ apt list --installed | grep mongo 이후 출력된 결과에 mongodb가 있으면 아직 완벽하게 삭제가 안된 상태이므로 밑의..

    [MongoDB] EC2 연결 및 Ubuntu에 MongoDB 설치, 관리자 계정 추가, DataGrip 연결

    Ubuntu에 MongoDB설치 MongoDB의 public GPG key를 주입 $ wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - MongoDB를 위한 리스트파일 생성 $ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list 로컬 패키지 데이터베이스 갱신 $ sudo apt-get update MongoDB 설치 $ sudo apt-get install -y mongodb-org..

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

    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 💡 예전에 못 풀었던 ..

    백준 2231번: 분해합

    https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 n = int(input()) len=len(str(n)) if n

    [개념스터디] 4주차

    ORM 당근 마켓 ERD 예시 비밀번호: 510000 본 ERD 쿼리는 직접 만들었으며, 불완전한 쿼리라 오류 및 수정 사항이 존재합니다. 또한 실제 당근 마켓 쿼리와는 무관합니다! One-to-One 두 엔티티가 1대 1로 대응하는 관계 당근 마켓을 예로 들면, 적절한 예시는 아니지만 거래 완료된 물건이 접시나 인형처럼 여러 개가 아닌, 탁자나 선풍기처럼 1개라는 조건으로 1명의 소유자는 1개의 물건을 갖고, 1개의 물건은 1명의 소유자를 갖으므로 One-to-One 관계를 갖습니다. One-to-Many 두 엔티티가 1대 N으로 대응하는 관계 당근 마켓을 예로 들면, 한 명의 유저는 여러 상품을 업로드하여 판매할 수 있고, 한 개의 상품은 1명의 유저로 인해 판매되므로 One-to-Many 관계를 갖..