본문 바로가기

분류 전체보기311

Greedy 알고리즘 11047가 동전 0 1. 예제 - { 1 5 10 50 100 500 1000 5000 10000 50000 } 이 있을 때, 4200원을 만드는 최소의 방법은 1000 * 4 + 100 * 2 이므로 총 6회이다. 2. 문제해결 - [그리디한 해결전략] 순간의 최적해를 구한다. (위 문제는 순간의 최적해가 최종 문제의 정답의 최적해인 경우라서 문제가 해결된다.) 가치가 가장 큰 동전을 최대한 많이 이용하고, 같은 방법으로 나머지 금액을 가치가 가장 큰 동전을 최대한 많이 이용해서 금액을 다 채울때 까지 반복한다. 2019. 7. 14.
8. 동적계획법(DP) 동적 계획법은 큰 의미에서 분할 정복과 같은 접근 방식을 의미한다. 여기서 어떤 부분 문제는 같은 문제를 두 번 이상 풀 수도 있기 때문에, 이 문제에서 답을 여러 번 계산하는 대신 한번만 계산 하고 계산 결과를 저장해 놓고 재사용한다. 따라서 속도의 향상을 꾀할 수 있다. 중복되는 부분 문제 cache - 이미 계산한 값을 저쟁해 두는 메모리 장소 overlapping subproblems - 중복 되는 부분 문제 ex) 대표적인 문제 - 이항계수 조합 nCr, \( \begin{pmatrix} n \\ r \end{pmatrix} \)은 다음과 같은 성질이 있다. 메모이제이션 memoization - 한 번 계산한 값을 저장해 두었다가 재활용하는 최적화 기법 위와 같은 이항계수 문제를 일반적인 재귀함.. 2019. 7. 14.
Django 앱 작성하기 part5 [test] Test 장고는 버그 테스트를 자동으로 해준다. 테스트를 통해 디버깅 시간을 절약할 수 있다. 앞으로의 문제를 예방한다. 신뢰도가 증가한다. 협업 시 일을 돕는 효율적인 툴이 된다. 버그 케이스 만들기 $ python manage.py shell >>> import datetime >>> from django.utils import timezone >>> from polls.models import Question >>> # create a Question instance with pub_date 30 days in the future >>> future_question = Question(pub_date=timezone.now() + datetime.timedelta(days=30)) >>> # was.. 2019. 7. 12.
Pycharm 단축키 필요 노트북을 사용하다보면, 작은 화면에 모든 것이 보이지 않아서 필요없는 화면은 끌 필요가 있습니다. 이 때 필요한 것이 창 닫는 단축키 인데요. Pycharm 단축키를 소개합니다. 단축키 내용 Alt + 1 프로젝트창 닫기(열기) Alt + 2 Favorite창 닫기(열기) ... Alt + num 이런식으로 숫자가 붙은 창을 열고 닫을 때 응용하시면 됩니다. Alt + F12 터미널 창 닫기(열기) 2019. 7. 12.
Django 앱 작성하기 part4 [form] 투표(vote) 양식 만들기 반영사항- POST 데이터를 처리한 후에는 항상 HttpResponseRedirect를 반환해야 한다. polls/views.py from django.shortcuts import get_object_or_404, render def results(request, question_id): question = get_object_or_404(Question, pk=question_id) return render(request, 'polls/results.html', {'question': question}) polls/templates/polls/results.html {{ question.question_text }} {% for choice in question.choic.. 2019. 7. 12.
Django 앱 작성하기 part3 [view] view view를 사용하여 만들 것 4가지 색인 페이지 (index) - 최근 질문들 표시 세부 페이지 (detail) 결과 페이지 (results) 투표 기능 (vote) Django는 URL을 조사하여 화면에 보이게 될 view를 선택한다. - URLconfs 사용 또한 뷰는 PDF 생성이나 XML 출력, 실시간으로 ZIP파일을 만들 수 있다. Django는 페이지의 정보가 담긴 HttpResponse 객체를 반환하거나, 예외를 발생시킨다. Template namespacing 뷰에서 사용할 수 있는 템플릿을 작성하여 python 코드로 부터 디자인 영역을 분리한다! Django에게 정확한 템플릿을 지정해주기 위하여 이름공간(namespacing)으로 구분짓는다. polls/templates/pol.. 2019. 7. 12.
[Pytorch] 데이터 불러오기 및 처리 Data Loading and Processing Tutorial Transforms 대부분 뉴럴넷은 정해진 크기의 이미지를 입력으로 받는다. 그래서 preprocessing 코드가 필요하다. Rescale RandomCrop : 임의로 이미지를 자른다. (data augmentation) ToTensor : numpy 배열의 이미지를 torch 텐서로 바꾸어준다.(we need to swap axes!) torch 는 효율적인 연산을 위해서 numpy array를 tensor로 바꾸고 모델에 입력한다. ToTensor가 이를 돕는데, 내부 코드는 아래와 같다. class ToTensor(object): def __call__(self, sample): # axis를 바꾼다. # numpy array: .. 2019. 7. 11.
Django 앱 작성하기 part2 [model] 모델 설문조사 앱 (poll)을 만들기 위해서 데이터베이스를 구성한다. models.py 를 작성한다. poll/models.py from django.db import models class Question(models.Model): question\_text = models.CharField(max\_length=200) pub\_date = models.DateTimeField('date published') class Choice(models.Model): question = models.ForeignKey(Question, on\_delete=models.CASCADE) choice\_text = models.CharField(max\_length=200) votes = model.. 2019. 7. 11.
1966 프린터 큐 queue를 만들고, 4 2 1 2 3 4 n = 4, m = 2, cnt = 0 2 3 4 1 m = 1 3 4 1 2 m = 0 4 1 2 3 m = 3 1 2 3 m = 2, cnt = 1 2 3 1 m = 1 3 1 2 m = 0 1 2 cnt = 2 6 0 1' 1 9 1 1 1 n = 6, m = 0, cnt = 0 1 9 1 1 1 1' m = 5 9 1 1 1 1' 1 m = 4 1 1 1 1' 1 m = 3, cnt = 1 1 1 1' 1 m = 2, cnt = 2 1 1' 1 m = 1, cnt = 3 1' 1 m = 0, cnt = 4 1 cnt = 5 max 값 있으면 max 값을 pop 할 때까지 front를 pop하고 push함 m 인덱스 갱신 cnt++ max 값 없으면 m 값.. 2019. 7. 1.
11729 하노이 탑 접근 장대 1, 2, 3이 있고, 1에 원판 3개가 있을 때, 이 원판을 모두 크기 순에 맞게 장대 3에 옮겨야 한다. 그 과정을 살펴보자. a b 는 a의 맨위의 원판을 b의 맨 위로 옮긴다는 뜻이다. 자 머리속으로 상상해보자. 그러면서 일반화 해보자.(n개의 원판으로!) 1 3 1 2 3 2 ---------- 1) 지금 이상황은 1에서 제일 큰 원판이, 2에 n-1개의 원판이 순서대로 있는 상황이다. 1 3 ---------- 2) 1에 있는 가장 큰 원판을 3으로 보낸다. 2 1 2 3 1 3 ---------- 3) 2에서 n-1개의 원판을 3으로 보내는 상황이다. 함수 f(a, b, n_disk)를 정의하고 맨처음 상황을 f(1, 3, 3)으로 생각해보자. 1)의 상황을 다시 한번 보자. f(.. 2019. 6. 28.
728x90