분류 전체보기146 DRF - Single Model JSON : 속성-값 쌍, 배열 자료형 또는 기타 모든 시리얼화 가능한 값 또는 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷 - 파이썬의 dictionary, 자바스크립트의 objectc처럼 C 계열의 언어가 갖고 있는 자료구조로 쉽게 변환할 수 있는 key-value 형태의 구조를 갖고 있음 이제 HTML이 아닌 JSON 데이터를 응답하는 서버만! 구축해보자 - JSON 데이터를 받아 화면을 구성하여 사용자에게 보여주는 것은 Front-end Framework가 담당 Django Serializer를 사용한 JSON 응답 Serialization (직렬화) : 데이터 구조나 객체 상태를 동일 혹은 다른 컴퓨터 환경에 저장하고, 나중.. 2022. 10. 17. URL 웹에서의 리소스 식별 - HTTP 요청의 대상을 리소스라고 함 ( 문서, 사진, 기타 어떤 것이든 될 수 있음) " 각 리소스는 식별을 위해 URI로 식별됨 " URI (Uniform Resource Identifier) : 통합 자원 식별자 - 인터넷에서 하나의 리소스를 가리키는 문자열 1) URL 2) URN : 특정 이름 공간에서 이름으로 리소스를 식별하는 URI URL (Unifirm Resource Locator) : 통합 자원 위치 - 웹에서 주어진 리소스의 주소 = 네트워크 상에 리소스가 어디있는지 URL 구조 1. Scheme (or protocol) : 브라우저가 리소스를 요청하는데 사용해야 하는 프로토콜, 어떤 규약을 사용하는지를 나타냄 https://www.example.com:80/.. 2022. 10. 17. Baekjoon_1595_북쪽나라의도로 Baekjoon_1595_북쪽나라의도로 1595번: 북쪽나라의 도로 입력은 여러줄에 걸쳐 주어진다. 입력의 각 줄은 세 개의 양의 정수로 구성되어있는데, 각각은 차례대로 서로 다른 두 도시의 번호와 두 도시를 연결하는 도로의 길이를 의미한다. 모든 도로는 www.acmicpc.net 문제 두 도시 사이에 도로를 만드는 일은 매우 비싸다. 때문에 북쪽나라는 특정 도시를 두 번 이상 지나가지 않고서 임의의 두 도시간을 이동하는 경로가 유일하도록 도로가 설계되어 있다. 또한 북쪽나라의 모든 도시는 다른 모든 도시로 이동할 수 있다고 한다. 이때, 거리가 가장 먼 두 도시 사이의 거리를 출력하는 것이 당신의 임무이다. 북쪽나라에는 최대 10,000개의 도시가 있을 수 있고, 도시는 1 부터 숫자로 이름이 매겨져.. 2022. 10. 9. Baekjoon_16234_인구이동 Baekjoon_16234_인구이동 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 해결방법 인구 이동은 동시에 진행된다 ! -> 인구 이동의 가능성을 확인했지만 인구 이동이 일어나지 않은 경우에는 visited 값을 2로 해주어야 같은날 또 다시 방문하지 않고 다음 날 탐색 해 줄 수 있다. 코드 from collections import deque def bfs(i, j): dq = deque() dq.append((i, j)) visited[i][j] = 1 # 모든 연합 국가를 담을 배열 .. 2022. 10. 8. pjt 1. ModelForm 위젯 속성을 이용해서 부트스트랩 클래스인 'form-control' 추가하기 class MovieForm(forms.ModelForm): GENRES = ( ('comedy', 'comedy'), ('horror', 'horror'), ('romance', 'romance') ) genre = forms.ChoiceField(choices=GENRES, widget = forms.Select( attrs = { 'class':'form-select', } ) ) release_date = forms.DateField( widget = forms.DateInput( attrs={ 'type' : 'date', 'class': 'form-control', } ) ) score = fo.. 2022. 10. 7. 실습 - 1:N 을 활용한 app 작성 1. Question. Comment 테이블 정보 eithers/models.py from django.db import models # Create your models here. class Question(models.Model): title = models.CharField(max_length=200) issue_a = models.CharField(max_length=100) issue_b = models.CharField(max_length=100) class Comment(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) pick = models.BooleanField() content = models.. 2022. 10. 6. 서로소 집합(Disjoint-sets) 서로소 집합? : 서로 중복 원소가 없는 집합들. 다시 말해서 교집합이 없는 집합 집합에 속한 하나의 특정 멤버를 통해 각 집합들을 구분한다. 상호 배타 집합 표현 - Tree 하나의 집합을 하나의 트리로 표현한다 자식 노드가 부모 노드를 가리키며 루트 노드가 대표자가 된다. 상호 배타 집합에 대한 연산 Make_Set(x) : 유일한 멤버 z를 포함하는 새로운 집합을 생성하는 연산 Find_Set(x) : x를 포함하는 집합을 찾는 연산 Union(x, y) : x, y를 포함하는 두 집합을 통합하는 연산 구현 def make_set(x): p[x] = x def find_set_r(x): # 재귀로 푸는 경우 if x == p[x]: return x return find_set(p[x]) def fi.. 2022. 9. 29. 최단 경로 - Dijkstra 최단 경로 정의 : 간선의 가중치가 있는 그래프에서 두 정점 사이의 경로들 중에 간선의 가중치의 합이 최소인 경로 하나의 시작 정점에서 끝 정점까지의 최단 경로 1) 다익스트라(dijkstra) 알고리즘 - 음의 가중치를 허용하지 않음 2) 벨만-포드(Bellman-Ford) 알고리즘 - 음의 가중치 허용 모든 정점들에 대한 최단 경로 1) 플로이드-워샬(Floyd-Warshall) 알고리즘 Dijkstra 알고리즘 : 시작 정점에서 거리가 최소인 정점을 선택해 나가면서 최단 경로를 구하는 방식 시작 정점에서 끝 정점까지의 최단 경로에 정점 x가 존재한다. 이때, 최단 경로는 s에서 x까지의 최단 경로와 x에서 t까지의 최단경로로 구성된다 탐욕 기법을 사용한 알고리즘으로 MST의 Prim 알고리즘과 유사.. 2022. 9. 28. 최소 비용 신장트리(MST) - Prim 그래프에서 최소 비용 문제? 1) 모든 정점을 연결하는 간선들의 가중치의 합이 최소가 되는 트리 2) 두 정점 사이의 최소 비용의 경로 찾기 신장 트리 : n개의 정점으로 무방향 그래프에서 n개의 정점과 n-1개의 간선으로 이루어진 트리 -> 사이클 x, 하지만 모든 정점이 연결된 최소 신장 트리 : 무방향 가중치 그래프에서 신장 트리를 구성하는 간선들의 가중치의 합이 최소인 신장 트리 MST를 표현하는 방법 ''' 6 11 0 1 32 0 2 31 0 5 60 0 6 51 1 2 21 2 4 46 2 6 25 3 4 34 3 5 18 4 5 40 4 6 51 ''' # V : 노드의 개수, E : 간선의 개수 V, E = map(int, input().split()) # 인접 행렬 adjM = [[0].. 2022. 9. 28. 이진 검색 Binary Search : 자료의 가운데 있는 항목의 키 값과 비교하여 다음 검색의 위치를 결정하고 검색을 계속 진행하는 방법 -> 키를 찾을 때까지 검색 범위를 반으로 줄여나가면서 순환하므로 보다 빠르게 검색 가능 단, 이진 검색을 하기 위해서는 자료가 정렬되어 있어야 함 검색 과정 1. 자료의 중앙에 있는 원소를 고른다. 2. 중앙 원소의 값과 키 값이 같은 지 비교한다. 3. 키 값이 중앙 원소보다 작으면 자료의 왼쪽 반에 대해서 새롭게 검색을 수행하고, 크다면 오른쪽 반에서 수행한다. 4. 1~3의 과정을 값을 찾을 때까지 반복한다. 구현 1. 반복 구조로 # 반복구조 def binarySearch(S, key): low = 0 high = len(S)-1 while low key: high =.. 2022. 9. 27. 이전 1 ··· 8 9 10 11 12 13 14 15 다음