일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Java
- 16637
- 색종이 붙이기
- 17143
- 부분수열의 합
- 17144
- 재귀
- 구슬탈출2
- Ajax
- 따라하기
- 인스타
- 6603
- 17472
- 미세먼지 안녕!
- 인스타그램
- 17136
- 댓글
- 14888
- 장고
- 백준
- 다리 만들기2
- 연산자 끼워넣기
- 알고리즘
- 9095
- 14502
- 좋아요
- django
- 1182
- 괄호추가하기
- 로또
- Today
- Total
목록분류 전체보기 (82)
Be a developer
주어지는 숫자의 순서가 바뀌지 않기 때문에 연산자만 순열을 통해 풀면된다. 수의 개수가 최대 11개이므로 연산자의 개수는 최대 10개가 되어 순열로 풀 수 있는 문제이다. 브루트포스로 모든 경우의 수를 만들어 보면서 최댓값과 최솟값을 구한다. algorithm 헤더의 minmax_element함수를 이용한다. 자세한 설명은 코드의 주석으로.. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include #include #include using namespace std; int main(int argc, char** argv) { int n; cin >> n; vector v(n); ve..
이 문제는 배열 안에 중복된 수가 있어도 next_permutation이 잘 작동한다는 것을 이용해서 푼다. 예시와 같이 k=8, s={1,2,3,5,8,13,21,34}인 경우 0을 먼저 6개 넣고, 다음에 1을 2개 넣어야 한다. 그렇게 되면 0 0 0 0 0 0 1 1과 같은 vector가 만들어지고, 이를 next_permutation을 사용해 섞으면 뒤에서 부터 섞이게 되어 모든 순열을 다 검사할 수 있다. 만약 1을 6개 먼저 넣고 0을 2개 넣게 되면, 1 1 1 1 1 1 0 0 과 같은 vector가 만들어지고, 모든 순열을 다 검사하지 못하게 된다. 원소는 오름차순으로 입력받기 때문에 sorting할 필요가 없다. 0과 1을 vector에 넣을 때 조심해야 한다. vector v(n)과..
instagram에 폰트를 적용하겠다. 구글 폰트를 이용하는데, 실제 instagram의 폰트인 billabong는 유료라서 다른 필기체 폰트를 하나 골라서 적용했다. 마음에 드는 폰트 아무거나 적용하면 된다. 폰트를 클릭하면 아래 빨간 박스가 뜬다. 아래와 같은 창이 뜨면 link 태그는 head 태그안에 넣고, font-family 속성은 style 태그 안에 적용하려는 css에 넣는다. 코드는 아래와 같다. 1 2 3 4 5 6 7 8 /*head 태그 안에 넣는다.*/ /*h1 태그에 폰트 적용 */ h1{ display: inline; font-family: 'Dancing Script', cursive; } Colored by Color Scripter cs 그 결과 (검색 창 안에 검색은 p..
N이 최대 10일 때 10개의 도시 목록을 배열에 넣고 next_permutation을 통해서 풀면된다. 원소가 10개 이하이기 때문에 브루트 포스로 풀 수 있는 문제다. 한 번 갔던 도시로는 다시 갈 수 없기 때문에 순열로 풀 수 있는 문제다. 시작점은 중요하지 않다. 만약 4개의 도시가 있다면 1 -> 2 -> 3 -> 4 -> 1 이 루트와 2 -> 3 -> 4 -> 1 -> 2 이 루트에 필요한 비용은 같기 때문이다. 따라서 시작점을 정해놓고 알고리즘 풀이를 하기 때문에 시간 복잡도가 O(N * N!)보다 작다.(O( (N-1) * (N-1)!)) 처음에 순서대로 도시 번호를 넣어준 다음 순열을 돌리면서 모든 경로의 수를 구한다. 자세한 설명은 주석으로.. 1234567891011121314151..
저는 css를 못하기 때문에 디자인은 무시하고 봐주세여..(눈 감고 보셔도 됩니다.) 일단 about.html 파일을 만들어서 페이지를 이동하는 걸 해보겠습니다. home.html이 저장된 위치에 about.html 파일을 만들고, 대충 내용을 입력해줍니다. 생성한 html파일을 보여주려면? 먼저 해당하는 url 주소를 설정해야 하니까 urls.py로 갑니다. 대충 눈치보고 위에 코드를 따라 비슷하게 작성하면 됩니다. about은 home과 달리 첫 번째 인자를 빈 문자열로 두지않고 'about/'이라는 문자열을 두었습니다. 이는 http://127.0.0.1:8000/about 으로 접속했을 때 about.html을 보여주기 위함입니다. 하나의 주소에는 하나의 html만 띄웁시다. 그리고 저장을 하면 ..
본격적으로 프로젝트를 만들어 보겠습니다. 앞에서도 말했듯이 항상 현재 작업중인 디렉토리 잘 확인하시고 명령어를 입력해 주세요. 앞에서 python -m venv myvenv가 python을 이용한 명령어였듯이, django-admin은 django를 이용한 명령어입니다. django project를 만드는 것이니까 당연히 django 명령어를 이용하겠죠? startproject는 프로젝트를 만든다는 말일 것이고, wordcount는 만들 프로젝트의 이름입니다. 원하는 이름으로 설정해주시면 됩니다. 위는 만들어진 기본 프로젝트입니다. 당분간은 settings.py urls.py 두 파일만 건드리게 될 겁니다. wordcount를 만들 때는 세션 때 배운 MTV 중에서 T(template)와 V(view)만..
계속 추가될 예정. 1. scanf를 잘 써보자. scanf("%1d",&num); //101010이 입력으로 들어올 때 하나씩 int형으로 읽을 수 있다. scanf("%d,%d",&num1, &num2); //10,10과 같이 정해진 형식으로 입력을 받을 수 있다. 2. 배열을 전역변수로 선언하면 모든 원소가 0으로 초기화 된다. 지역변수로 선언하면 dp[1001][10] = {}; 이렇게 초기화 해줘야 모든 원소가 0으로 초기화된다. 3. min, max return하는 함수 사용법 auto res = minmax_element(vector.begin(), vector.end()) /* *res.first => min *res.second => max */ res = max_element(vecto..
abs함수와 max함수를 쓴다는 것 외에는 딱히 설명할게 없다. 한 가지 중요한 점은 순열을 사용하기 위해서는 먼저 정렬을 해야 한다는 것이다.(모든 경우를 다 돌려보기 위해서) next_permutation을 사용할 때는 첫 번째 순열을 돌린 후에 해야 하기 때문에 do-while을 사용하자. 시간복잡도는 N이 최대 8이므로 8!로 순열로 해결할 수 있는 문제임을 알 수 있다. 1234567891011121314151617181920212223#include #include using namespace std; int main(int argc, char* argv[]) { int n, ans = 0, sum; cin >> n; int *bf = new int[n]; for (int i = 0; i > ..