본문 바로가기

분류 전체보기

(403)
[백준] 13164번 행복유치원 (C++) https://www.acmicpc.net/problem/13164 N이 30만이기 때문에 모든 경우를 확인할 수 없는 문제이다. 이런 각 숫자들의 차이에 따라 갈리는 문제들은 각 숫자들의 차이를 위주로 생각해야한다. 5 31 3 5 6 10 예제 문제를 예로 들어보자. 1 3 | 5 6 | 10 이렇게 막대를 새우면(그루핑하면) 정답이다. 이걸 어떻게 찾을 수 있을까? 이번엔 각 숫자들이 이웃한 숫자와 차이를 적어보자 2 2 1 4 이 숫자는 곧 각 사이에 막대를 두었을 때 없앨 수 있는 비용과 같다. 즉 여기서는 3개로 나눌 수 있으므로 막대는 2개 새울 수 있으므로, 4와 2 위치에 막대를 두면 정답을 찾을 수 있다. 1 | 3 5 6 | 10 이렇게 해도 정답은 3이므로 같은 값이면 막대를 어디에..
[백준] 7573번 고기잡이 (C++) https://www.acmicpc.net/problem/7573 슬라이딩 윈도우같은 문제인데 사실은 브루트포스이다. 초등수준 도형 지식을 요구한다. 고기를 기점으로 왼쪽 사이드에 고기가 있다고 가정하고 브루트포스하면 되는 문제다. 단, 그물이 모든 바다를 덮을 수 있는 경우를 예외처리해야한다. 난 1만 * 1만 배열은 만들어 고기를 관리했는데 이렇게하면 메모리를 많이쓴다. 다른 사람들은 이렇게 안한것같다. 하지만 메인 로직은 같기 때문에 따로 참고하진 않았다.  #include#include#define MAX 10001using namespace std;int N, I, M;bool sea[MAX][MAX];vector> fishs(101);int fishing(int n, int m, int x, ..
[프로그래머스 SQL] 5월 식품들의 총매출 조회하기 [ORACLE] https://school.programmers.co.kr/learn/courses/30/lessons/131117 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr JOIN, GROUP BY를 사용하면 되는 문제. 조인을 먼저 하고 그룹바이를 거는 방법도 있고, 그룹화를 먼저 하고 원하는 정보를 걸러낸 후 조인하는 두가지 방법이 있는데 난 두번째 방법을 사용했다. 서브쿼리를 사용해야하기 때문에 첫번째 방법이 더 좋은 것 같다. FOOD_ORDER 먼저 위 테이블에서 5월에서 출시된 상품들과 그 상품들이 몇개나 주문되었는지 추출하는 쿼리를 작성한다. SELECT PRODUCT_ID, SUM(AMOUNT) ..
[백준] 1461번 도서관 (C++) https://www.acmicpc.net/problem/1461 문제세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책들의 원래 위치가 주어질 때, 책을 모두 제자리에 놔둘 때 드는 최소 걸음 수를 계산하는 프로그램을 작성하시오. 세준이는 한 걸음에 좌표 1칸씩 가며, 책의 원래 위치는 정수 좌표이다. 책을 모두 제자리에 놔둔 후에는 다시 0으로 돌아올 필요는 없다. 그리고 세준이는 한 번에 최대 M권의 책을 들 수 있다.입력첫째 줄에 책의 개수 N과, 세준이가 한 번에 들 수 있는 책의 개수 M이 주어진다. 둘째 줄에는 책의 위치가 주어진다. N과 M은 50보다..
[ORACLE] 오라클의 NULL 처리 IS NULL, IS NOT NULLSELECT * FROM TABLE_NAMEWHERE COL_NAME IS NULL NULL인지 아닌지 처리NVL, NVL2SELECT NVL(1, 2), NVL(COL_NAME, 'a')FROM TABLE_NAME; COL_NAME이 NULL이면 a가 나온다.SELECT NVL2('A', 'B', 'C') // C , NVL2(NULL, 'B', 'C') // 2 , NVL2(1, 2, 3) // 3FROM TABLE_NAME; 첫번째 파라미터가 NULL이면 3번째 파라미터가, 아니면 2번째 파라미터가 나온다.NULLIFSELECT NULLIF('A', 'B') // A , NULLIF('A', 'A') // NULL ..
1장: 데이터 저장 구조 및 I/O메커니즘 I/O 튜닝이 곧 SQL 튜닝이라 해도 과언이 아니다.I/O = 잠자는시간I/O가 일어나는 시간동안 프로세스는 잠을 자기 때문I/O가 발생하면 프로세스는 대기큐에서 잠을 잔다. 그리고 I/O가 끝나면 디스패처에 의해 다시 일한다.시퀀셜 엑세스 vs 랜덤 엑세스시퀀셜 엑세스논리적, 물리적으로 연결된 순서에 따라 차례대로 블록을 읽는 방식랜덤 엑세스순서를 따르지 않고 레코드 하나를 읽기 위해 한 블록씩 접근하는 방식논리적 I/O vs 물리적 I/OSystem Global Area (SGA)DB Buffer Cache, Redo Log Buffer, Shared Pool (Library Cache : SLQ), Data Dictionary Cache여러 메모리와 사용사 세션이 공유하는 공간DB버퍼캐시데이터 캐..
[ShellScript] ShellScript 문법, LINUX 명령어, GIT 정리 Git이번의 처음으로 돌아가기git restore . Shellscript주석변수ifforwhile입출력LINUX 명령어권한 설정사용중인 프로세스 확인 명령어디렉토리 CRUDjava jar 파일 실행
[SpringBoot] Github Action을 사용한 BlueGreen배포 1. Github Action에서 클라우드의 shellscript 실행하기 이전까지 jar파일을 클라우드 서버에 전송하는 것 까지 진행시켰다. 이제 서버에 전송 후 이전에 쓰던 것을 끄고 새로운 것을 켜주는 쉘스크립트를 작성해야한다. 다만 그 전에 쉘스크립트 파일을 실행하는 로직을 github action에 추가해주어야한다. folder_path="/home/shellScript/newFolder"mkdir $folder_path 쉘스크립트는 위와 같이 매우 간단하게 새로운 폴더를 하나 만드는 것으로 하였다. # 쉘스크립트 파일 실행- name: Execute shell script on remote server env: SSH_PASSWORD: ${{ secrets.SSHPASSWORD }} ..