전체 글

백엔드 개발 공부하고 있습니다.
문제 링크 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net 간단하게 소수 복습을 할 수 있는 문제입니다! 사실 오랜만에 소수 문제를 풀려니, 에라토스테네스의 체를 까먹어버려서(...) 전에 풀었던 소수 문제를 참고해서 문제를 풀었습니다. 복습이 되서 좋았습니다. 풀이 간단하게 소수(정수론) + 투포인터로 풀이가 가능합니다. MAX(`4000000`)까지의 소수를 모두 구해줍니다. 투포인터를 활용해서 부분합을 구한 뒤, 제시된 N과 부분합이 일치한다면 결과값+1 을 해줍니다. 풀이코드 C++ 풀이코드 #include using namespace std; #define endl "\n" const int MAX = 4000001; ..
이전에 nodejs를 사용해서 개발할 때는, 개발 서버가 실행될 때 자동으로 웹 브라우저가 실행되어서 참 편했습니다. 하지만 스프링에서는 그런 기능이 기본으로 있지 않아, 개발할 때 항상 웹 브라우저를 수동으로 켜서 실행해야 했습니다. 이 때문에 구글링과 chatGPT의 도움을 통해 임시로나마 다음 코드를 통해 해결할 수 있었습니다. package com.example.exampleapp; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframewo..
문제 링크 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net 그리디 문제집의 문제들을 살펴보다가, 재밌어 보이는 문제가 있어서 풀어보게 됐습니다. 처음에는 BFS로 풀면 되겠지하고 BFS로 풀어봤는데 모든 경우의 수를 탐색하는 것은 아니어서 틀렸습니다. 질문 게시판을 참고하니 DFS로 풀었다는 글이 다수여서 DFS로 풀었더니 시간초과가 발생했고, vst 배열로 오른쪽 끝까지 갈 수 없는 길을 다시 가지 않도록 최적화했더니 겨우 통과가 되었습니다. 배낭문제같은 그리디 문제만 접하다가 이런 DFS를 활용한 그리디 문제를 접하게 되..
백준이나 프로그래머스에서 문제풀이를 하는데 계속 같은 환경에서 새로운 문제를 풀 때마다 `Main` 클래스 초기화를 반복해서 하자니 템플릿과 매크로가 필요했습니다. 그래서 gradle 명령어로 Main 클래스의 템플릿을 초기화하고, 파일입출력을 받되 파일 경로가 코드에 노출되지 않는 스크립트를 만들었습니다. Main클래스 템플릿 + 초기화 스크립트 준비할 파일들은 다음과 같은 구성으로 되어있습니다. 참고로, 위 디렉터리들 중 `build`, `solve` 는 이 포스트와 관련이 없습니다. `solve` 에는 풀었던 문제들을 따로 저장했습니다. 파일 이름에서 눈치챘을 수 있었을 것입니다. `BOJ.java`는 백준 풀이용 템플릿이고, `Programmers.java`는 프로그래머스용 템플릿입니다. 우선 `..
문제 링크 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 제가 요즘 자신없어하는 알고리즘 종류가 그리디 문제입니다. 그래서 그리디 문제를 여러개 풀며 공부하던 도중, 재밌는 문제를 하나 발견해서 풀이를 올려보겠습니다! 풀이 모노톤 스택을 이용해서 그리디로 풀면 됩니다. 모노톤 스택을 한마디로 말하자면, 스택 원소들을 오름차순 또는 내림차순으로 유지시키는 스택입니다. 이 성질을 이용해서, 다음과 같은 과정으로 문제를 풀이했습니다. true면 결과값에 포함하지 않을 chk 배열을 선언합니다. 예를 들면, [1, 2, 3, 4] 이라는 배열이 있고, chk 배열이 [true, true, f..
라페dev
RP 개발일지