전체 글

알고리즘 문제 풀이와 C++·Spring·프론트엔드 개발, 컴퓨터 과학과 AI 논문을 쉽게 정리하는 기술 블로그입니다.
https://www.acmicpc.net/problem/2253 2253번: 점프 N(2 ≤ N ≤ 10,000)개의 돌들이 같은 간격으로 놓여 있다. 편의상 순서대로 1, 2, …, N번 돌이라고 부르자. 당신은 현재 1번 돌 위에 있는데, 이 돌들 사이에서 점프를 하면서 N번째 돌로 이동을 하려 www.acmicpc.net 1. Logic 1번째 돌에서 시작하여 n번째 돌까지 가야하지만 중간에 밟지 못하는 돌이 존재한다. 이런 돌을 걸러주기 위해 bool배열을 통해 체크해준다. 재귀를 통해 0까지 들어가며 부문문제를 해결해준다. 부분문제는 1. 이전에 이동했던 칸수와 동일하게 이동하는 경우 2. 이전에 이동했던 칸수-1칸 이동하는 경우 3. 이전에 이동했던 칸수+1 이동하는 경우 이렇게 3가지 이다..
https://www.acmicpc.net/problem/11653 1. Code #include using namespace std; int main() { int n; cin >> n; if (n == 1) return 0; for (int i = 2; i
게시물 대표 이미지
스프링 시큐리티 로그인이 안돼서 개발자 도구에서 네트워크 패킷을 봣는데 자꾸 저@%7B/signin%7D주소로 호출을 하고있었다. 그래서 구글링 결과 너무 별거없는 오류였다.. 타임리프 문법을 사용하는데 action에 타임리프를 안줘서 생기는 오류였다 action > th:action
https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 1. Logic 이 문제의 부분문제는 총 3가지로 나눌 수 있다. 1. 사자를 배치하지 않는 경우(항상) 2. 사자를 오른쪽에 배치하는 경우(이전에 사자를 왼쪽에 배치했을 때) 3. 사자를 왼쪽에 놓는경우 (이전에 사자를 오른쪽에 배치했을때) 이렇게 3가지 경우를 끊어서 해결해주면 된다. 아래 코드를 보면 이해가 될 것이다. 2. Code #include #include using namespace std; int n; int dp[100001][3]; int solve(int idx, int prev) { if(idx == n)..
https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 1. Logic dp배열이 의미하는 것은 배열에 해당하는 카드를 구매할때의 최댓값이다. dp[구매하는 카드 갯수] = 최댓값. 최댓값을 구하는 방법은 1개짜리 팩 + 카드 3개를 구매하는데 필요한 최댓값 2개짜리 팩 + 카드 2개를 구매하는데 필요한 최댓값 3개짜리 팩 + 카드 1개를 구매하는데 필요한 최댓값 4개짜리 팩 이렇게 경우의 수를 나눠볼 수 있다. 2. Code #include #include..
https://www.acmicpc.net/problem/1915 1915번: 가장 큰 정사각형 첫째 줄에 n, m(1 ≤ n, m ≤ 1,000)이 주어진다. 다음 n개의 줄에는 m개의 숫자로 배열이 주어진다. www.acmicpc.net 1. Logic 우리는 가장 큰 정사각형의 크기를 구해야 한다. 그렇기 때문에 dp배열의 의미는 가장 큰 정사각형의 한변의 길이를 의미한다. 한 지점을 기준으로 정사각형이 되기위해 쪼개지는 부분문제는 총 3가지가 있다. 아래 대각선 오른쪽 이렇게 3방향으로 쪼개진다. 이 3개의 부분문제의 리턴값의 최솟값이 현재 위치에서의 최댓값이 된다. 2. Code #include #include #include using namespace std; int n, m; string ..
https://www.acmicpc.net/problem/3151 3151번: 합이 0 Elly는 예상치 못하게 프로그래밍 대회를 준비하는 학생들을 가르칠 위기에 처했다. 대회는 정확히 3명으로 구성된 팀만 참가가 가능하다. 그러나 그녀가 가르칠 학생들에게는 큰 문제가 있었다. www.acmicpc.net 1. Logic 두개의 수를 먼저 골라 합을 만들어 놓고 나머지 한개의 수를 골라 0이 되는 수를 카운트 하면 된다. 이 문제에서는 중복되는 수가 나올 수도 있기 때문에 원하는 수가 먼저 나오는 index(lower bound) 원하는 수가 나오는 가장 마지막 index(upper bound) 두개를 구해 빼주어 갯수만큼 구해줬다. 밑의 코드에서 tempSum에 -를 붙혀준 이유는 우리는 a+b+c=0..
게시물 대표 이미지
React와 Node.js공부를 시작했는데 처음부터 에러와 마주쳐버렸다... 아래의 사진은 Codespaces 에서 실습 중 Thunder Client로 API요청을 보낸 상황이다. 사진과 같이 Post로 요청을 보냈을 때 401 Unauthorized 오류가 떴다. 해당 오류 Status code 401(Unauthorized) 오류는 리소스에 접근할 자격이 없다는 뜻이다. 그래요청이 deny당한 것이다. 구글링 결과 API Key를 잘못 적용했거나 권한이 없다고해서 권한도 줘봤지만 해결되지 않았다. 나느 군대에서 Codespaces와 Gitpod으로 코딩을 하고 있기 때문에 여기서 포트를 열면 Private or Public 으로 열리게된다. Default는 Private로 열리기 때문에 요청 갈수가..
https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 1. Logic 전체 인원의 반을 나눠서 팀을 구성하기 때문에 기저조건을 N/2로 설정한 후 DFS를 진행한다. N/2까지 갔을 때 전체인원의 반은 check배열에 true로 표시되어있고 반은 false로 표시되어 있을 것이다. true로 선택된 번호는 스타트 팀에 배정을 하고 false인 인원은 링크 팀에 배정을 하여 DFS를 돌며 최소값을 구한다. 2. Code #include using namespace std;..
게시물 대표 이미지
스프링 시큐리티를 활용하여 회원가입 로직을 짜고 회원가입 테스트코드까지 작성해서 테스트코드가 통과하는것을 확인 했다. 이후 실제로 폼에 들어가 회원가입을 해보니 값을 입력하고 submit을 하니 Valid error로 값을 못받아왔다고 떴다. 난 분명 값을 다 보내주고 타임리프 문법도 확인해봤는데,, 그래서 컨트롤러에서 값을 찍어봤더니 실제로 값을 못받아 오고 있었다.아래 두 사진은 나의 컨트롤러와 회원가입 폼이다. 로직에는 문제가 없는 것 같아 값을 받아오는 객체인 ModelAttribute쪽에 문제가 있는 것 같았고 구글링을 해보던 중 안주형님의 블로그 글을 찾게 되었다.https://dkswnkk.tistory.com/457 [Spring] @RequestParam, @RequestBody, @Mo..
보글보글소다
Conquer Mind, Conquer All | 개발 블로그