목록분류 전체보기 (279)
HwangHub
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 문제 해석 위 문제는 N x M 크기의 배열 안에서 구성될 수 있는 직사각형을 모두 탐색하여, 그 직사각형이 모두 양수로 이루어진 케이스 중 최대의 넓이를 출력하는 문제이다. n과 m이 20 이하의 자연수이므로, 그 내부 직사각형의 길이를 for loop으로 정의하고, 기준 좌표를 정의하고, 넓이 내의 좌표를 모두 for loop으로 순회하더라도 어림잡아봐야 O(n^3 * m^3)인데, 이렇게 해봐야 최악의 경우 64,000,000번의 연산을 하게 되고, 실제로는 이보다 더 작을 것이므로 완전탐색으로 수..
공부를 하다보면 "멱등성"이라는 단어를 마주칠 때가 있는데, 이전에는 멱등성에 대한 이해가 서칭 포인트가 아니였기에 넘어갔다. 그러다 오늘, 학습을 진행하다가 멱등성이 다시 등장했고, 오늘은 이 녀석을 한번 정리해볼까 한다. 멱등성, 출신이 어디인가? 조금이라도 관심있게 알아본 사람은 모두 알겠지만, 멱등성은 수학에서 나온 단어이다. 아래 정의를 보면 알 수 있듯, 연산을 여러 번 수행하더라도 그 결과가 동일할 때 "멱등성을 갖는다"고 한다. 멱등법칙(冪等法則) 또는 멱등성(冪等性, 영어: idempotent)은 수학이나 전산학에서 연산의 한 성질을 나타내는 것으로, 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다. 출처: 위키피디아 이를 서버의 관점에서 이해해보자. 우리는 보통 HTT..
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 문제 분석 이 문제는 n이 100까지이므로 충분히 완전탐색이 가능하다. for loop을 이용하여 손쉽게 모든 경우의 수를 훑어서 정답을 찾아낼 수 있다. 문제 로직 대각선은 훑지 않아도 되고, 가로 또는 세로만 훑으면 되므로 원래 배열, 축 반전 배열 두 가지로 저장해두고 한번에 가로와 세로를 훑을 수 있도록 하였다. 또한 m이 1일 때에는 비교문 연산이 필요없이 모든 행/열이 '행복한 수열'이므로 해당 부분은 별도로 처리해주었다. 연속성이 중간에 끊기면 카운트를 다시 하되, 한번이라도 연속성을 가진 ..
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 문제 해석 이 문제는 주어진 범위에서 조합의 경우의 수를 구하는 문제이므로 전형적인 백트래킹 문제라고 할 수 있다. 여기서 필요한 것은, 중복이 허용되지 않는다는 것이다. 따라서 파라미터를 통해 시작점을 진행시키는 테크닉이 필요했다. 문제 풀이 public class n개중에_m개뽑기 { private static int n, m; private static Set set = new TreeSet(); public static void main(String[] args) throws IOException..
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 이 문제 또한 최단 경로를 묻는 문제이므로 BFS로 접근하면 된다. 풀이 자바는 0으로 배열이 기본 초기화되니, 처음에는 0이면 이동이 불가한 것이라고 생각했다. public class 나이트 { private static int n; private static int[] dx = new int[]{-2, -1, 1, 2, 2, 1, -1, -2}; private static int[] dy = new int[]{-1, -2, -2, -1, 1, 2, 2, 1}; private static int x1,..
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 문제 해석 2차원 배열 + 상하좌우 탈출 가능 경로 최단 거리 -> 가중치가 동일하니 BFS 뱀이 있는 칸 or 배열 크기를 벗어나는 방향으로 이동 불가 + visited[][] != 1 이동 발걸음 수를 저장할 ans[][] 선언하여 이동하며 업데이트 /* * 풀이 과정 pseudo code * 1. n, m 입력받는다. * 2. n번 loop : * 뱀이 없는 경우 1, 뱀이 있는 경우 0으로 2차원 배열 입력 * * 3. BFS() : * dx,dy 선언 ~ 상하좌우 * Queue q = new L..
https://www.codetree.ai/missions/2/problems/yutnori-1d?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 문제 해석 이 문제는 윳놀이 말의 선택 조합을 어떻게 가져가면 더 많은 점수를 낼 수 있는지에 대한 문제이다. 백트래킹으로 완탐을 돌렸을 때 시간복잡도는 O(k^n + n) 정도 될 것인데, k가 4 이하이고, n이 12 이하이므로 약 16백만 정도의 연산량이 최대이니 백트래킹을 활용해도 좋을 것이란 판단이 났다. 문제 풀이 package ..
Paging 조회 API 테스트코드를 아래와 같이 작성하였고, security filterchain에서는 모든 요청에 대하여 열어두었다. @WebMvcTest(controllers = PostController.class) @ActiveProfiles("test") class PostControllerTest { @Autowired private ObjectMapper om; @Autowired private MockMvc mockMvc; @MockBean private PostService postService; @MockBean private PostRepository postRepository; @DisplayName("유저가 입력한 키워드, 그리고 클라이언트에서 전해주는 page=0++, size..
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 문제 해석 위 문제는 k
어플리케이션 성능 모니터링 어플리케이션 성능 모니터링(APM)은 어플리케이션의 성능을 실시간으로 모니터링할 수 있도록 해주는 도구입니다. 이를 통해 개발자는 어플리케이션의 성능을 실시간으로 확인하고 분석할 수 있습니다. Spring Boot Actuator : 스프링 부트 어플리케이션의 상태를 모니터링하고 관리하는 데 사용되는 모듈입니다. Actuator를 사용하면 어플리케이션의 상태, 메트릭, 빈, 스레드 등을 확인할 수 있습니다. Actuator는 spring boot starter에 등록되어 있습니다. 그 외에 Micrometer와 같은 모니터링 시스템 구현체도 있습니다. 로깅 및 로그 분석 어플리케이션 로그는 어플리케이션의 동작과 관련된 중요한 정보를 담고 있습니다. 로그를 효과적으로 관리하고 분..