qwlake's Blog

어서오세요, 반갑습니다 :)

Django 프로젝트 AWS에 배포하기 (feat. Docker, Nginx, PostgreSQL)

서론 본 프로젝트는 원래 멋쟁이 사자처럼 7기 중앙 해커톤의 결과물이다. 때문에 프로젝트는 배포 목적도 아니었고, 윈도우에서 작업하던 것이라 위와 같은 스택을 사용할 일이 없었다. 하지만 애써 만들어 놓은 사이트 묵히기도 아깝고, 코드만 달랑 보여주면 이게 어느 정도의 완성도를 갖춘 사이트인지, 무슨 사이트인지 모르기 때문에 AWS에 배포하기로 생각...

백준 2635번 - 수 이어가기

https://www.acmicpc.net/problem/2635 입력 수를 재귀로 탐색하며 풀었다. 여기서 포인트는 두 번째 수가 첫 번째 수의 3/4~2/4만큼의 값을 가진다는 것이다. 예를 들어 입력값이 100이면 두 번째로 와야 하는 수는 100의 3/4~2/4인 75~50 사이에 있다. 물론 이 다음에 올 숫자도 그렇다. 다음에 오는...

백준 2579번 - 계단 오르기

다이나믹 프로그래밍 문제다. 나는 자바로 풀었다. 3번 연속 계단을 밟지 않고 최대값을 찾는 방향으로 진행하면 된다. 시간복잡도 : O(n) 전체 코드는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import java.util.Scanner; public class Main { publ...

백준 2193번 - 이친구

https://www.acmicpc.net/problem/2193 다이나믹 프로그래밍 입문 문제다. 쉬운지는 모르겠지만 간단한 문제다. 1이 연속으로 존재하면 안 되니, 새로운 자리수를 만드려면 이전 자리수가 반드시 0으로 끝나야 한다. 따라서 i-1번째에 0으로 끝난 경우와 i-2번째에 0으로 끝난 경우를 합하면 i번째의 값이 나온다. 즉,...

백준 2156번 - 포도주 시식

3잔 연속으로 마실 수 없는 것만 기억하면 쉽게 동적 프로그래밍으로 풀 수 있다. 경우의 수는 다음과 같다. i번째를 안 마신 경우 i-1번째를 안 마신 경우 i-2번째를 안 마신 경우   i-3 i-2 i-3 i ...

백준 1244번 - 스위치 켜고 끄기

https://www.acmicpc.net/problem/1244 정보올림피아드 2000년도 초등부 문제로 정답률은 낮지만 쉬운 문제다. 문제에서 1. 남학생이 스위치를 조작할 때와 2. 여학생이 스위치를 조작할 때를 구분할 수 있다. 남학생 같은 경우는 몰아서 스위치를 탐색하는 시간을 줄일 수 있지만, 여학생 같은 경우는 조건부 스위치 조작이...

백준 1932번 - 정수 삼각형

https://www.acmicpc.net/problem/1932 동적 프로그래밍 문제다. 입력 데이터를 전부 2차 배열에 넣고 탐색한다. 왼쪽 위에서 내려올때와 오른쪽 위에서 내려올때를 구분해서 DP 배열을 완성시키면 된다. (i,j) 위치에서의 최대값을 구한다면, (i-1,j)과 (i-1,j-1) 중 더 큰 값에 (i,j)의 값을 더해서 ...

백준 1931번 - 회의실배정

https://www.acmicpc.net/problem/1931 정답률은 낮지만 쉬운 문제다. 회의가 빨리 끝나는 것부터 배정하면 된다. 회의가 빨리 끝나는 것이 무엇인지 판단하려면 정렬해두고 뽑거나 회의를 뽑을 때마다 전체를 탐색하는 방법 이 있겠다. 2번 방법은 시간복잡도가 N^2이기 때문에 패스...

백준 1912번 - 연속합

https://www.acmicpc.net/problem/1912 정답률 27%로 꽤 낮은 편에 속한다. 동적 프로그래밍으로 풀면 쉽다. …,(i-2),(i-1)번째 까지의 sum에 i번째의 값을 더한다. 이 값이 양수이면 i번째 값을 채택하고, 아니라면 sum을 0으로 초기화 후 (i+1)부터 다시 쌓나 나간다. 그리고 sum이 가장 높았을...

백준 1413번 - 박스 안의 열쇠

https://www.acmicpc.net/problem/1413 코드를 보면 간단해 보이는데 애를 먹었던 문제다. 이 문제에서 원하는 출력은 열쇠를 얻는 경우의 수가 아닌 확률이다. 따라서 (주어진 폭탄만을 사용해 모든 상자를 연 경우의 수)/(모든 상자를 연 경우의 수) 의 형태로 출력해야 한다. (주어진 폭탄만을 사용해 모든 상자를 연 경...