일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 17143
- Java
- 6603
- 알고리즘
- 16637
- 14888
- 구슬탈출2
- 미세먼지 안녕!
- 따라하기
- django
- 인스타그램
- 인스타
- 백준
- 로또
- 17144
- 댓글
- 17136
- 부분수열의 합
- 다리 만들기2
- 장고
- 괄호추가하기
- 9095
- 1182
- 좋아요
- 재귀
- 연산자 끼워넣기
- 17472
- 14502
- Ajax
- 색종이 붙이기
- Today
- Total
Be a developer
앞선 문제들을 풀었다면 쉽게 풀 수 있는 문제이다. 마찬가지로 현재 날짜를 선택하는 경우와 선택하지 않는 경우로 나눠서 풀면된다. N+1일을 넘어가지 않도록 하는 것이 중요하다.(딱 N+1일에 끝나도록 한다.) 답이 될 수 있는 경우에 return을 하는 것을 매번 까먹는다. 까먹지 않도록 주의 12345678910111213141516171819202122232425262728293031323334353637383940#include #include #include using namespace std; int n;int ans; void solve(int idx, int sum, vector t, vector p) { //N+1일을 넘어가면 안되므로 return if (idx > n)return; //..
sum은 인자로 전달해준다. 중간에 원소 몇 개로 합을 완성할 수도 있지만, 아래 코드에서 sum과 s가 같더라도 이후의 원소가 들어오는 것에 따라서 다시 sum과 s가 같아질 수 있다. 따라서 경우의 수를 (s==sum && i == n)과 (s != sum && i == n) 두 가지로 나누어서 풀어야 한다. 또한 합이 0이 입력되면, 아무것도 선택하지 않아도 0이 되므로, 공집합은 허용되지 않는다. 따라서 답을 출력할 때 1을 빼준다. 123456789101112131415161718192021222324252627282930#include #include #include using namespace std; int n, s;vector v(20);int ans; void go(int i, int ..
이전에 풀었던 로또 문제를 재귀로 푸는 것이다. 이전에는 순열로 풀기위해 선택한 번호는 0으로 넣고, 선택하지 않은 번호는 1로 넣는 새로운 vector를 선언해주었다. 하지만 재귀에서는 앞선 암호 문제처럼 재귀를 통해 넣고, 안 넣고를 할 수 있기 때문에 새로운 vector가 필요없다. 대신 넣고 안 넣고를 check할 check 배열을 하나 생성한다. check 배열을 놓고 풀지 않고, vector하나를 두고 선택하면 vector에 push_back으로 넣고, 넣지 않으면 pop_back으로 빼서 풀 수도 있다. 자세한 설명은 아래 주석으로.. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484..
먼저 유저가 올리는 글을 저장할 db model이 필요하다. 일단 img 파일을 올릴 필드와 content 필드만 작성하여 post라는 모델을 하나 만들었다. class Post(models.Model): img = models.ImageField(upload_to='images/') content = models.TextField() 지금까지 사용한 css파일이나, image 파일들은 개발자가 개발단계에서 서버에 저장한 파일이다. 이를 static파일이라 한다. 하지만 인스타그램처럼 유저가 올리는 image 파일들은 따로 저장할 경로를 지정해줘야 한다. 이를 media 파일이라 한다. 자세한 설명은 여기서 그리고 image 파일의 관리를 위해서 pillow를 설치해야 한다. 또한 settings.py에..
1 2 3 4 5 6 7 8 9 10 .nav_container{ display: flex; justify-content: space-around; align-items: flex-end; position: fixed; z-index: 1; width: 100%; height: 4rem; border-bottom: 1px solid #efefef; } Colored by Color Scripter cs nav bar를 고정시키기 위해 fixed시키고 z-index를 통해 앞으로 튀어나오게 했다. 그리고 이전에 있떤 margin값과 padding 값 등은 재조정하다보니 없애고, width를 100%로 주었다. 그 결과 background-color와 main div의 위치 조정이 필요할 것 같다. whit..
일단 암호가 오름차순이 되어야 하므로 입력받은 문자들을 sorting한다. sort는 algorithm 헤더에 있는 함수이다. 문자열을 만들고 문자를 더하여 문장을 만들어 출력해야 하므로, string을 쓴다. c++은 string 자료형이고, java는 String 자료형이다. 헷갈리지 말자. 자세한 설명은 아래 코드의 주석으로.. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#include #include #include using namespace std; int l, c;//l은 만들어야 할 암호의 길이, c는 주어지는 알파벳의 수 bool ch..
제대로 나눈 건지는 모르겠지만, 기능별로 하나의 글을 나눠보면 5개 정도의 part로 나눌 수 있을 것 같다. 그래서 아래와 같이 5개 part로 나누었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 cs 아이콘들과 form 태그, img 태그 등을 넣어서 아래와 같은 뼈대 코드를 만든다. 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 username comment1 comment2 Colored by Color Scripter cs 그 결과 card에 흰 바탕을 주어야 할 것 같다. 그리고 left_main과 right_main이 구분이 가지 않으니 글을 써서 어떻게 나뉘는..
이전에 for문을 통해서 같은 문제를 풀었다. for문은 재귀로 바꿀 수 있기 때문에 재귀로도 풀 수 있다. for문은 10개를 만들어야 했지만, 재귀는 많은 코드가 필요없으므로 조금 더 간단하게 풀 수 있다. 재귀는 1.불가능한 경우 2.정답을 찾은 경우 3.다음 경우를 호출하는 경우 와 같은 3가지 경우로 나누어 풀어야 한다. 1,2,3을 선택할 수 있으므로 시간 복잡도는 O(3^n)이다. 자세한 설명은 아래 코드의 주석으로.. 123456789101112131415161718192021222324252627282930#include using namespace std; int ans;int n;void solve(int sum) { //1, 2, 3 중에 더하는 거라서 n을 넘어갈 수도 있음. 그 ..