분류 전체보기

    [백준 1275] 커피숍2 (C++)

    [백준 1275] 커피숍2 (C++)

    1275번: 커피숍2 첫째 줄에 수의 개수 N과 턴의 개수 Q가 주어진다.(1 ≤ N, Q ≤ 100,000) 둘째 줄에는 처음 배열에 들어가 있는 정수 N개가 주어진다. 세 번째 줄에서 Q+2번째 줄까지는 x y a b의 형식으로 x~y까지의 합 www.acmicpc.net 세그먼트 트리 [백준 11505] 구간 곱 구하기 (C++) 11505번: 구간 곱 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 곱을 구하는 횟수이다. 그리고. hyeo-noo.tistory.com 위 문제와 똑같은 문제이다. a번째수를 b로 바꾸어야 하므로 a번째 수를 포함하고 ..

    [AWS] EC2 서버 프리티어로 사용하기

    [AWS] EC2 서버 프리티어로 사용하기

    AWS 프리 티어 12개월 무료: 이 프리 티어 오퍼는 AWS 신규 고객에게만 제공되며 AWS 가입일로부터 12개월 동안 유효합니다. 12개월의 무료 사용 기간이 만료되거나 애플리케이션 사용량이 프리 티어 범위를 초과 aws.amazon.com 1. 아마존 홈페이지에서 회원가입을 한다. 준비물 : 해외 결제 가능한 카드와 계좌에 100원 이상 2. 로그인 후 리전 변경 서울로 바꾸자 3. EC2 탭을 찾아서 들어가자 4. 인스턴스 시작 누르기 5. 운영체제 고르기 우분투 20.04 를 선택했다. SSD라서 좋아보인다.. GCP는 무료사용일 때 HDD라서 엄청 느렸었는데.. 6. 인스턴스 유형 선택 대놓고 프리티어 사용가능 이라고 적혀있다. 쉽게 찾을 수 있어서 좋다. 메모리는 1기가, CPU는 1대를 제..

    [백준 9019] DSLR (C++)

    [백준 9019] DSLR (C++)

    9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net BFS 이미 찾아 본 숫자라면 que에 넣지않도록해서 최대 10000번만 bfs를 수행하도록 했다. 메모이제이션 안하면 4^n 의 시간복잡도로 시간초과가 난다. D S L R 연산을 조심하자. 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 5..

    [백준 2188] 축사 배정 (C++)

    [백준 2188] 축사 배정 (C++)

    2188번: 축사 배정 농부 존은 소 축사를 완성하였다. 축사 환경을 쾌적하게 유지하기 위해서, 존은 축사를 M개의 칸으로 구분하고, 한 칸에는 최대 한 마리의 소만 들어가게 계획했다. 첫 주에는 소를 임의 배정해 www.acmicpc.net 최대 유량 주어진 입력을 그래프로 나타내 보았다. 소는 자신이 원하는 축사로만 이동할 수 있음을 나타냈다. 축사에는 소를 1마리만 들일 수 있으므로 축사에서 목적지로 1마리만 보낼 수 있다고 생각해도 무방하다. 위 그래프의 정점의 개수는 12개이다. 시작점이 0번, 끝점이 1번. 소들은 2번부터 6번까지, 축사는 7번부터 11번의 번호를 가지게 된다. 그래프는 단방향 그래프지만 음수 유량을 통해서 유량 상쇄를 구현하기 위해서 그래프는 모두 양방향으로 연결해 준다. ..

    [백준 11505] 구간 곱 구하기 (C++)

    [백준 11505] 구간 곱 구하기 (C++)

    11505번: 구간 곱 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 곱을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net 세그먼트 트리 구간의 곱을 구하는 문제라서 0을 신경써줘야 한다. 구간 합을 update할 때는 update값이 마이너스로 들어와서 부모부터 갱신이 가능했다. 하지만 곱을 update할 때는 안된다. 예를 들어서 3번째 수를 6으로 바꾸려고 하고 현재 3번째 수가 0인 경우를 생각해보자 구간 합을 구할 때와 조금 다르게 리프노드부터 업데이트해 나가면 편하다 3번째 수에 도달하면 (항상 리프노드일 것임)..

    [Docker] MariaDB - docker로 관리하기

    [Docker] MariaDB - docker로 관리하기

    [Docker] Nginx 웹서버 구동해보기 컨테이너에 대하여 [Container 시리즈] 00. Container/ Docker란 뭔가요? Container / Docker 컨테이너.. 들어봤는데 무엇인지 잘 모르겠다..라고 생각하시는 분들을 위하여 이 글을 연재합니다. 1. Container 보.. hyeo-noo.tistory.com 이전 포스팅 mariadb 이미지 가져오기 $ docker pull mariadb:10.5 mariadb 10.5버전을 가져온다. mariadb 컨테이너 생성 $ docker run -d --name mariadb -p 3306:3306 -v ${PWD}:/var/lib/mysql -e MARIADB_ROOT_PASSWORD=1234 -e MARIADB_DATABASE..

    [Mac] GitHub push token 오류 해결

    [Mac] GitHub push token 오류 해결

    Github 오류 7.29일 새벽 갑자기 git push가 안 되는 현상을 겪었다. 오류의 첫 줄이 무슨 말이냐면 Password 인증방식이 일시적으로 brownout(shutdown?)되었다. Password 대신에 personal access token을 사용해주세요. 깃허브에서 일시적으로 Password 인증 방식에 오류가 생긴 듯하다. 잠시 기다리면 해결될 수도 있겠지만 나는 바로 push를 해야 할 상황이었기 때문에 직접적으로 해결했다. 왜 Mac만 오류가 난거지??? 2021 중반부터 인증에 token이 사용될거라는 github의 공지.. personal access token을 사용하게 될 거라고 한다. 오류에서는 temporarily라고 했으면서.. 인증 방식을 바꾸면서 이미 예정되어있었던..

    알고리즘과 개발

    알고리즘과 개발

    도커를 쓰면 쓸 수록 유용함을 크게 느낀다. 맥에서 docker 고유의linux 환경이 한 겹 깔려서 named volume을 쓰는걸 지양하게 되는데 그래도 전혀 무겁지 않은 가상환경 느낌의 프로세서에서 작업한다는게 마음이 편하다. 그리고 어차피 컨테이너 내부에 접근할 수 있어서 크게 불편하진 않다. conda가상환경이나 pyvenv가상환경을 아무렇게나 써도 해당 가상환경을 지우면 깔끔! 인것처럼 도커도 환경이 더러워지거나 수습하기 힘들 때 그냥 지우면 끝이니까 편안하다. 수많은 시행착오 끝에 개발환경(django + mariadb)을 모두 도커로 구성하고 서버연습환경(django + mariadb + nginx)까지 도커로 구성했따. 이 과정에서 도커이미지랑 컨테이너를 각각 50개씩은 만들었다 지웠다 ..

    [백준 1305] 광고 C++

    [백준 1305] 광고 C++

    1305번: 광고 세준이는 길 한가운데에서 전광판을 쳐다보고 있었다. 전광판에는 광고가 흘러나오고 있었다. 한참을 전광판을 쳐다본 세준이는 이 광고가 의미하는 것이 무엇인지 궁금해지기 시작했다. 전광 www.acmicpc.net KMP 15분 정도 뚫어져라 본 결과 규칙을 찾았다. 문자열의 마지막이 접두사와 중복된 채로 끝난다면 해당 중복 문자열의 길이만큼 광고 문자열을 감소시킬 수 있다. babba 라는 문자열이 주어졌다고 가정. 접두사 table을 만들어보자 table = {0, 0, 1, 1, 2} 테이블의 마지막 값이 2이므로 해당 문자열은 마지막 2개가 중복된다고 볼 수 있다. 따라서 문자열의 길이 5에서 중복 문자열 2개를 제외한 3개가 답이 된다. -> bab 다음 광고가 중복되는 부분부터 ..

    [백준 1786] 찾기 C++

    [백준 1786] 찾기 C++

    1786번: 찾기 첫째 줄에, T 중간에 P가 몇 번 나타나는지를 나타내는 음이 아닌 정수를 출력한다. 둘째 줄에는 P가 나타나는 위치를 차례대로 공백으로 구분해 출력한다. 예컨대, T의 i~i+m-1번 문자와 P의 1~m www.acmicpc.net KMP 어젯밤부터 이해하는데 어려움을 느꼈던 알고리즘 기본 kmp문제를 보니 대놓고 알고리즘을 설명해주고 있다. 더보기 워드프로세서 등을 사용하는 도중에 찾기 기능을 이용해 본 일이 있을 것이다. 이 기능을 여러분이 실제로 구현해 보도록 하자. 두 개의 문자열 P와 T에 대해, 문자열 P가 문자열 T 중간에 몇 번, 어느 위치에서 나타나는지 알아내는 문제를 '문자열 매칭'이라고 한다. 워드프로세서의 찾기 기능은 이 문자열 매칭 문제를 풀어주는 기능이라고 할..