본문 바로가기

전체 글657

[leetcode][309] Best Time to Buy and Sell Stock with Cooldown 문제 : https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/ 주식가격이 주어질 때 최대 이익을 구하라. 동시에 여러개의 교환은 진행될 수 없다. (즉, 주식을 샀으면 팔때까지 다른 주식을 사고팔수없다.) 주식을 팔았을 때 다음날엔 어떠한 거래도 할 수 없다. (쿨다운 1일) 오랜만에 dfs + dp(memoization). top-down 방식으로 풀었다. dfs(index)를 stock[index~]을 사고 팔 때 얻을 수 있는 최대이익을 가져오는 함수라하자. 이 값은 index에서 어떠한 거래도 하지 않았을 때(dfs(index+1))와 index를 샀을때로 나뉠 수 있다. index 번째 주식을 구입했으면 팔아야 .. 2020. 8. 1.
[leetcode][154] Find Minimum in Rotated Sorted Array II 문제 : https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/ 오름차순 정렬된 배열이 있을 때, 어떤 pivot으로 배열이 회전했다고 하자. ex) [0,1,2,3,4,5,6,7] -> [4,5,6,7,0,1,2,3] 회전된 배열이 주어질 때 가장 작은 수를 구하라. 배열안에 수는 중복될 수 있다. 33번 Search in Rotated Sorted Array 와 비슷하게 풀었다. 위 문제와 다른 점은 33번 문제는 회전된 배열에서 특정 수 target을 찾고 배열은 중복된 수가 없다. 왼쪽 오른쪽 배열 오름차순 오름차순 오름차순 (제일 작은수가 왼쪽에 위치) 오름차순 내림차순 제일 작은수가 오른쪽에 위치 내림차순 오름차순 제일 작.. 2020. 7. 26.
[leetcode][260] Single Number III 문제 : https://leetcode.com/problems/single-number-iii/ 2개의 요소는 단 하나만 존재하고 이 외의 요소들은 두 개씩 있는 nums 배열이 주어진다. 하나만 존재하는 2개 요소를 찾아라. (요소의 순서는 상관없다. 선형 시간복잡도로 구현하라.) nums 배열을 탐색하면서 모든 요소들의 XOR 연산 결과를 sum 변수에 저장한다. XOR 연산은 홀수번 나온 비트는 1, 짝수번(0포함) 나온 비트는 0으로 세팅된다. 즉, XOR연산 결과는 1개만 존재하는 수의 XOR 결과와 같다. (나머지 수들은 2번 XOR 연산되므로 A XOR A = 0. 이 되므로 무시해도 된다.) 하나만 존재하는 요소를 각각 A, B라고 했을 때, A는 B와 같지 않으므로 A XOR B = 0 .. 2020. 7. 24.
brian kernighan's algorithm 2진법 수에서 1의 수(cnt) 를 세는 알고리즘. N = 11010(2) 에서 1의 수를 세보자. 일단 N - 1을 구한다. N - 1 = 11001(2) N, (N - 1)을 AND 연산한다. N & (N - 1) = 11000(2) 연산 결과는 N에서 뒤에서부터 가장 처음나오는 1 비트를 삭제한 결과와 같다. 1비트가 하나 있어서 삭제되었으므로 cnt + 1을 해준다. 이를 N이 0보다 큰경우 반복한다. (N이 0보다 큰 경우 1이 반드시 한 개 있다는 의미이므로) #include using namespace std; int main() { int N; cin >> N; int cnt = 0; while (N > 0) { N &= (N - 1); cnt++; } cout 2020. 7. 24.
[AWS][Nginx] static 파일 연결하기 AWS에서 서버 받은 후 Nginx 설치까지 끝났다는 것을 가정하고 진행합니다. Window 기준. AWS에 파일 전송 FileZila 이용. 편집 - 설정 클릭 연결 - SFTP - 키 파일 추가 클릭 - ppk 파일 선택 - 확인 새 사이트 클릭 호스트 : 접속 가능한 도메인 적기. 프로토콜 : SFTP 로그온 유형 : 일반 사용자 : ubuntu (서버에 따라 다름. putty 접속시 사용자 이름과 같음 - 참고) 연결 클릭 Nginx 설정 putty로 서버 접속. (참고) cd /etc/nginx #/etc/nginx 위치로 이동 sudo vi nginx.conf #nginx.conf 열기 mkdir servers # servers 폴더 생성 http { // 생략 include servers/*.. 2020. 7. 12.
[docker] docker-compose로 nginx 띄우기 로컬에서 8080 포트로 앱을 하나 띄웠습니다. my-app.com 으로 접속시 위 앱으로 접속하려고 합니다. mac 기준으로 작성하였습니다. host 파일에 도메인 등록 # /private/etc/hosts 127.0.0.1 my-app.com # add host파일에 127.0.0.1 my-app.com 을 추가해줍니다. host파일 등록 참고 docker로 nginx 띄우기 my-app.com -> docker로 띄워진 nginx(80번 포트 listen) host 파일 등록으로 위 작업이 가능해졌고 docker로 띄워진 nginx(80번 포트 listen) -> localhost:8080 접속 이제 위와 같은 작업을 하려고 합니다. 이를 위해 총 3개의 파일을 추가했습니다. 1. custom.co.. 2020. 7. 11.