본문 바로가기

전체 글137

2021.6.28 TIL : [Django] REST API & Rest framework 새로운 개념을 배웠는데 금방 까먹을까봐 정리해 두어야 할 것 같다! API에 대한 개념 설명은 부스트코스 코칭스터디 하면서 여러 번 들었는데, 생각보다 기억에 남지 않고 그냥 결제 API, 지도 API 이런 식으로 쓰인다는 점만 기억해두고 있었다. 그 때도, 그런 API들이 전부는 아니라는 설명을 들었는데, 오늘 친절한 운영진분의 설명으로 조금 더 확실하게? 개념을 적립할 수 있었다. API(Application Programming Interface)란? API를 설명듣기 전에 인터페이스에 대한 설명을 들었다. UI에 대해서 자주 접해서 인터페이스라는 말을 대략적으로 감 잡고 있다고 생각했는데, 막상 인터페이스가 뭔지 아는 것 같지는 않았다. 인터페이스는 사용자와 컴퓨터(혹은 다른 다양한 기기들 간)를.. 2021. 6. 28.
2021.6.14 TIL: [알고리즘] NP-완전 (NP-Completeness) 여러 문제들을 분류해 보면 주어진 문제의 해를 구하는 알고리즘이 전혀 존재하지 않는 풀 수 없는 문제들이 존재한다. 그리고 풀 수 있는 문제들이 존재한다. 풀 수 있는 존재들을 분류 하면 현실적인 시간 내에 풀 수 없는 문제들과 현실적인 시간 내에, 즉 합리적인 시간 내에 풀 수 있는 문제들이 있다. 오늘 배운 NP-완전 문제들은 현실적인 시간 내에 풀 수 없는 문제들에 속할 것이라고 추정되는 문제들이다. 현실적인 시간은 다항식 시간(polynomial time)을 의미한다. 입력의 크기를 n이라고 할 때 n의 다항식으로 표시되는 시간을 말한다. 즉, O(n^k) 나 O(3nk + 5nk -1), O(n log n) 등이다. 비다항식 시간의 예로는 O(2^n) 혹은 O(n!) 등이 존재한다. 문제에서 요.. 2021. 6. 14.
2021.6.13 TIL : [알고리즘] 백트래킹 (BackTracking) 마지막 알고리즘 수업에서는 백트래킹과 NP-완전을 배웠다. 둘 다 조금은 이해하기 어렵다고 느껴져서 오늘은 이 내용을 정리해보고자 한다. 문제에서 어떤 해를 구할 때, 해의 형태가 n개의 원소로 이루어진 튜플인 경우가 있다. (이 때, 이 튜플 내의 각 원소를 x1, x2, x3, ... xn이라고 한다.) 해의 원소들(xi)은 유한 집합(Si)에서 선택된다. 백트래킹은 기준함수인 P를 최대화/최소화/만족하는 해를 구하는 문제를 해결하는데 적용하는 방법으로 효율적인 알고리즘이 존재하지 않을 경우에 사용한다. 모든 문제의 사례에 대해서 효율적이진 않지만 많은 문제 사례에서 효율적이다. mi를 Si의 크기, 즉 원소의 개수라고 하면, xi가 선택할 수 있는 해는 각각 m1, m2, m3, ..., mi, ... 2021. 6. 13.
2021.5.24 TIL : [Django] 블로그 만들기(2) - path-converter로 각 블로그의 디테일 페이지 만들기 지난 주에 Django를 이용해서 블로그 DB를 만들고 해당 정보를 한 페이지에 보여주는 것까지 완료 했다. 만약 블로그를 클릭하여 상세 정보까지 보여주는 페이지를 만들고 싶다면, 어떻게 해야 할까? 우리가 배웠던 대로 html 파일을 각 url에 하나씩 만들고, views.py와 urls.py 에 각각 입력하는 방법을 이용하게 되면 블로그를 하나씩 올릴 때마다 새로 views 와 urls를 모두 업데이트 해야 한다. 따라서 이렇게 하기 보다 path-converter을 이용하여 하나의 파일로 다양한 블로그 글의 디테일 페이지를 보여줘야 한다. Path-converter를 이용해서 id 값만 다르게 적어주면 다르게 보여줄 수 있고, 이를 views.py에 있는 매개변수로 넘겨줄 수 있다. Path-con.. 2021. 5. 29.
[Heap] 프로그래머스 이중우선순위큐 출처 : 프로그래머스 이중우선순위큐 https://programmers.co.kr/learn/courses/30/lessons/42628# 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 문제에서 정의된 이중 우선순위 큐는 다음 연산을 할 수 있는 자료 구조를 지닌다. 명령어 수신 탐(높이) I 숫자 큐에 주어진 숫자를 삽입한다. D 1 큐에서 최대값을 삭제한다. D -1 큐에서 최소값을 삭제한다. 이중 우선순위 큐가 할 연산 operations를 매개변수로 가질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0]을, 비어 있지 않으면 [최댓값, 최소값]을 return하는 solution 함수를 구현하는 문제이다. 1) 힙 구조를 사용하지 않고 푸는 방법 가장 먼저 접근한 방법은 힙.. 2021. 5. 25.
2021.5.24 TIL : [Django] 블로그 만들기(1) - 파이썬으로 DB 생성, superuser 만들기 보호되어 있는 글 입니다. 2021. 5. 24.