목록파이썬 (28)
기록과 정리의 공간
Flask로 게시판 만들기 - 2 (참고 강의 링크-인프런 강의) (공부 하며 기록이 필요한 부분들만 정리함) 개발 환경 : windows 10 / Python 3.8.1 / vscode MongoDB 연결하기 (flask_pymongo라이브러리 공식 문서 링크) 게시물 작성 시간 구하기 1. MongoDB 연결하기 #1 : flask_pymongo의 PyMongo import하기 #2 : ["MONGO_URI"]는 지정된 문자열이므로 바꾸면 안된다. PyMongo는 localhost의 27017 포트에서 실행 중인 MongoDB서버에 연결되고, 이 때 DB의 이름은 myweb2(사용자가 지정)이다. #3 : mongo라는 인스턴스로 #2에서 생성한 DB에 접근할 수 있게 된다. #4 : board라는 ..
(참고 링크)의 일부를 정리함 Flask의 기본 어플리케이션 Flask의 기본 어플리케이션은 다음과 같은 모습이다. 작성한 어플리케이션의 이름을 'flask.py'로 하지 않도록 주의한다. Flask와 자체 충돌이 나기 때문. #1 : Flask class를 import함 #2 : Flask class의 인스턴스를 생성. 인자로 모듈이나 패키지의 이름을 넣는다. ★인자로 모듈의 이름을 직접 넣지 않고, __name__으로 지정한 이유? : __name__은 현재 모듈(.py 파일)의 이름으로 정해지는데 해당 모듈이 시작점일 경우, __main__으로 변경되므로 이 부분을 해결하기 위해 __name__으로 지정 #3 : route() 데코레이터로 어떤 URL이 함수를 실행시키는지 알려준다. #4 : 함수는..
Flask로 게시판 만들기 - 1 (참고 강의 링크-인프런 강의) (공부하며 기록이 필요한 부분만 정리함) 개발 환경 : windows 10 / Python 3.8.1 / vscode Flask란? 위키백과, 공식문서, 한글 번역 사이트 virtualenv 라이브러리 설치 / 가상환경 생성 Flask 설치 MongoDB + ROBO 3T 설치 flask-pymongo 라이브러리 설치 1. virtualenv 라이브러리 설치 / 가상환경 생성 1) 가상환경을 위한 라이브러리인 virtualenv를 설치 pip install virtualenv virtualenv는 프로젝트마다 각각 독립적인 실행환경을 구성할 수 있도록 해준다. 2) 가상환경 생성 : 프로젝트 폴더 위치(myweb2)에서 아래 명령으로 가상..
백준 1991번 : 트리 순회 (문제 링크) 사용 언어 : 파이썬(Python) 문제 유형 : 트리, 구현 난이도 : 하 소스코드 import sys n = int(sys.stdin.readline()) class Node: def __init__(self, head, left, right): self.head = head self.left = left self.right = right tree = dict() for _ in range(n): head, left, right = sys.stdin.readline().split() tree[head] = Node(head, left, right) def pre_order(node): print(node.head, end='') if node.left !=..
백준 2212번 : 센서 (문제 링크) 사용 언어 : 파이썬(Python) 문제 유형 : 그리디 난이도 : 하 소스코드 import sys n = int(sys.stdin.readline()) k = int(sys.stdin.readline()) pos = sorted(list(map(int, sys.stdin.readline().split()))) if k >= n: print(0) sys.exit() dist = [] for i in range(1, n): dist.append(pos[i] - pos[i-1]) dist.sort(reverse=True) for _ in range(k-1): dist.pop(0) print(sum(dist)) 설명 결론적으로 정렬만 수행하면 되므로 시간복잡도 O(Nlo..
백준 4195번 : 친구 네트워크 (문제 링크) 사용 언어 : 파이썬(Python) 문제 유형 : 해싱, 최소 스패닝 트리 난이도 : 중 소스코드 import sys t = int(sys.stdin.readline()) def find(node): if parent[node] != node: parent[node] = find(parent[node]) return parent[node] def union(node1, node2): root1 = find(node1) root2 = find(node2) parent[root2] = root1 number[root1] += number[root2] for _ in range(t): f = int(sys.stdin.readline()) number = dict..
백준 2798번 : 블랙잭 (문제 링크) 사용 언어 : 파이썬(Python) 문제 유형 : 배열, 완전탐색 난이도 : 하 소스코드 import sys n, m = map(int, sys.stdin.readline().split()) cards = list(map(int, sys.stdin.readline(). split())) sum_cards = 0 for i in range(n-2): for j in range(i+1, n-1): for k in range(j+1, n): temp = cards[i] + cards[j] + cards[k] if temp
백준 2920번 : 음계 (문제 링크) 사용 언어 : 파이썬(Python) 문제 유형 : 배열, 구현 난이도 : 하 소스코드 import sys code = list(map(int, sys.stdin.readline().split())) # a, d results = [True, True] for i in range(1, len(code)): if code[i] - 1 != code[i-1]: results[0] = False if code[i] + 1 != code[i-1]: results[1] = False if results[0]: print('ascending') elif results[1]: print('descending') else: print('mixed..