분류 전체보기(111)
-
[9663 - JAVA] N-Queen
문제 N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.입력 첫째 줄에 N이 주어진다. (1 ≤ N 출력 첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다. 풀이 문제 풀 때 상하좌우 즉 가로 세로 부분 확인하는 아이디어는 금방 떠올랐지만 대각선 일치 여부를 확인하는 아이디어를 떠올리는데 실패해 검색을 통해 방법을 알아냈다. 대각선의 겹침 여부를 알아내는 방법으로는 행, 열의 차이 값을 비교해 알 수 있는데| row_1 - row_2 | == | col_1 - col_2 | 일치한다면 대각선이 겹치는 것이고 아니라면 겹치지 않는다. 해당 공식만 알고 있다면 일반적인..
2024.06.15 -
Github Action 이용한 CI/CD Spring Server 무중단 배포 (feat: Synology Nas)
프로젝트를 배포할 때 도커 이미지를 수동으로 도커 허브로 push 하고 다시 시놀로지 나스 도커로 poll 해오는 과정이 매우 귀찮기 때문에 깃허브에 올린 코드를 자동으로 재배포하는 파이프라인을 구축하게 되었습니다. 목차시놀로지 나스 ssh 접속 키 발급gradle.yml 파일 생성시놀로지 나스 ssh 접속 키 발급 시놀로지 나스 도커에 GitHub Actions를 이용해 배포하려면 SSH 접속을 위한 키가 필요합니다. 우선 SSH 접속을 허용하고 나스에 접속합니다. Windows에서는 Putty를 이용해 접속하고, Mac에서는 터미널에서 SSH를 통해 접속합니다.접속하는 시놀로지 나스 계정은 도커 제어 권한이 있어야 합니다. 계정의 루트 디렉토리에 .ssh 폴더를 생성하고 해당 폴더에 접속합니다. Na..
2024.06.05 -
[1202 - JAVA] 보석 도둑
문제 세계적인 도둑 상덕이는 보석점을 털기로 결심했다.상덕이가 털 보석점에는 보석이 총 N개 있다. 각 보석은 무게 Mi와 가격 Vi를 가지고 있다. 상덕이는 가방을 K개 가지고 있고, 각 가방에 담을 수 있는 최대 무게는 Ci이다. 가방에는 최대 한 개의 보석만 넣을 수 있다.상덕이가 훔칠 수 있는 보석의 최대 가격을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N, K ≤ 300,000)다음 N개 줄에는 각 보석의 정보 Mi와 Vi가 주어진다. (0 ≤ Mi, Vi ≤ 1,000,000)다음 K개 줄에는 가방에 담을 수 있는 최대 무게 Ci가 주어진다. (1 ≤ Ci ≤ 100,000,000)모든 숫자는 양의 정수이다. 출력 첫째 줄에 상덕이가 훔칠 수 있는 보석 가격..
2024.06.03 -
[1992 - JAVA] 쿼리트리
문제 흑백 영상을 압축하여 표현하는 데이터 구조로 쿼드 트리(Quad Tree)라는 방법이 있다. 흰 점을 나타내는 0과 검은 점을 나타내는 1로만 이루어진 영상(2차원 배열)에서 같은 숫자의 점들이 한 곳에 많이 몰려있으면, 쿼드 트리에서는 이를 압축하여 간단히 표현할 수 있다.주어진 영상이 모두 0으로만 되어 있으면 압축 결과는 "0"이 되고, 모두 1로만 되어 있으면 압축 결과는 "1"이 된다. 만약 0과 1이 섞여 있으면 전체를 한 번에 나타내지를 못하고, 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래, 이렇게 4개의 영상으로 나누어 압축하게 되며, 이 4개의 영역을 압축한 결과를 차례대로 괄호 안에 묶어서 표현한다위 그림에서 왼쪽의 영상은 오른쪽의 배열과 같이 숫자로 주어지며, 이 영상을 쿼드..
2024.05.24 -
[2630 - JAVA] 색종이 만들기
문제 아래 과 같이 여러 개의 정사각형칸들로 이루어진 정사각형 모양의 종이가 주어져 있고, 각 정사각형들은 하얀색으로 칠해져 있거나 파란색으로 칠해져 있다. 주어진 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 색종이를 만들려고 한다.전체 종이의 크기가 N×N(N=2k, k는 1 이상 7 이하의 자연수)이라면 종이를 자르는 규칙은 다음과 같다.전체 종이가 모두 같은 색으로 칠해져 있지 않으면 가로와 세로로 중간 부분을 잘라서 의 I, II, III, IV와 같이 똑같은 크기의 네 개의 N/2 × N/2색 종이로 나눈다. 나누어진 종이 I, II, III, IV 각각에 대해서도 앞에서와 마찬가지로 모두 같은 색으로 칠해져 있지 않으면 같은 방법으로 똑같은 크기의 ..
2024.05.24 -
[Spring - Security] OAuth2 클라이언트와 Security 기초 인증 / 인가 처리 (Feat - Kakao Login && Loacl Login) - 2
코드 버전 Spring boot: 3.2.1Java: JDK 17.0.9Gradle - Groovy https://zks145.tistory.com/107 [Spring - Security] OAuth2 클라이언트와 Security 기초 인증 / 인가 처리 (Feat - Kakao Login && Local Login) - 1코드 버전 Spring boot: 3.2.1Java: JDK 17.0.9Gradle - Groovy 의존성//securityimplementation 'org.springframework.boot:spring-boot-starter-oauth2-client'implementation 'org.springframework.boot:spring-boot-starter-security' ..
2024.05.19