본문 바로가기

전체 글1270

[백준] 1182 부분수열의 합 - Backtracking / Java • 문제 링크 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net • 풀이 과정 수열의 부분 집합을 구하는 여러가지 방법 중 비트 마스크를 활용하여 풀이하였다. 원소가 n개인 순열의 부분 집합의 수는 2의 n승 이며 이를 비트 연산자로 나타내면 1 2022. 7. 4.
[백준] 14888 연산자 끼워넣기 - Backtracking / Java • 문제 링크 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net • 풀이 과정 크기가 n인 number 배열을 생성해 연산할 수를 입력받아 저장하고, 연산자는 크기가 4인 operator 배열에 연산자의 개수를 입력받아 저장하여 해당 배열의 인덱스가 각각의 연산자를 의미하도록 한다. (+ : 0, - : 1, * : 2, / : 3) operator 배열에 존재하는 연산자를 사용하는 모든 연산의 경우의 수를 재귀 함수를 통해 구하고 연산자를 사용할 때마다 해.. 2022. 7. 3.
[백준] 16236 아기 상어 - Implementation / Java • 문제 링크 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net • 풀이 과정 배열을 입력받을 때 상어의 위치와 거리의 초기값을 Shark 객체에 저장하고 bfs 탐색을 할 함수에 상어의 크기(2), 먹은 물고기 수 (0), 거리(0) 를 매개변수로 전달한다. bfs 탐색을 하되 문제에 제시된 조건을 적용하기 위해선 우선 순위 큐를 활용해야한다. 상어와의 거리, y축, x축 순으로 PriorityQueue 자료구조에 Comparator 오름차순으로 비교하여 우선 순위를 지정한다. 이러한 규칙을 전제로 상어.. 2022. 7. 2.
[Web Development] SMTP 프로토콜을 통한 메일 전송 및 인증 회원 가입 시 사용자가 입력한 메일이 유효한 지 확인하기 위해 메일에 인증 코드를 전송하고, 해당 인증 코드 일치 여부를 검사하는 기능을 구현해보고자 한다. (해당 포스트에선 naver 메일로 인증을 진행한다.) 코드를 작성하기 전에 네이버 메일에 접속하여 smtp 설정이 필요하다. 메일을 전송할 네이버 계정에 로그인한 후 메일 인터페이스 하단 환경설정을 클릭한 후 위와 같이 설정하고 하단의 SMTP 포트 번호를 확인한다. 설정을 완료하면 메일 주소를 입력할 input 태그를 작성한다. onclick 이벤트를 통해 send() 함수를 실행시켜 메일 전송을 진행한다. 해당 이벤트로 발생되는 send() 함수는 아래와 같다. var result; function send() { var mail = $("#e.. 2022. 7. 1.
[백준] 14502 연구소 - Implementation / Java • 문제 링크 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net • 풀이 과정 연구소에 벽을 3개 세우는 모든 경우의 수를 재귀적으로 dfs 를 통해 구한다. 이렇게 벽을 세운 각각의 경우의 바이러스 확산을 bfs 를 통해 구현하고 이때 바이러스를 확산시킬 공간은 기존 lab 배열을 복사한 copy 배열을 생성해 구현한다. 바이러스가 확산된 copy 배열을 매개변수로 받아 해당 배열에 존재하는 0의 개수, 즉 안전 영역의 크기를 배열을 전체 탐색하여 구하고 이를 매번 maxCnt와 비교하여 최댓값으로써 갱신하여 정답을 출력한.. 2022. 7. 1.
[Spring] MultipartFille 을 활용한 다중 파일 업로드 및 출력 다중 파일 업로드를 위해 HTTP 에서 제공하는 multipart/form-data 전송 방식을 사용하면form 태그에 담긴 각각 다른 형식의 데이터들을 구분해주므로key / value 형태의 문자 데이터와 바이너리 형태의 파일 데이터를 함께 전송할 수 있다. 이렇게 전송한 데이터는 Spring 의 MultipartFille 인터페이스를 통해 받을 수 있으며이러한 기능을 구현하기 위해서 우선 몇 가지 환경 설정이 필요하다. • 환경 설정 및 Form 태그 구성SpringBoot / Maven 기준, 파일 업로드와 io 관련 디펜던시를 추가한다. commons-fileupload commons-fileupload 1.3.3 commons-io commons-io 2.6 ap.. 2022. 6. 30.