본문 바로가기

Tech

[Spring] Could not write JSON: Infinite recursion (StackOverflowError) 이슈 상황 스프링 기반 API 서버를 구현 프로젝트에서 Controller 테스트를 하는 도중 에러가 발생했다. nested exception is org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowError); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) 에러 로그를 확인해 보니 Could not write JSON: Infinite recursion (StackOverflowError..
[리트코드(LeetCode)] 310 Minimum Height Trees - Python Minimum Height Trees - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com - 를 학습하면서 수록된 코드를 참고하였습니다. - 풀이 시간초과가 나서 풀이에 성공하지 못한 문제. 모든 엣지를 루트로 두고 탐색하기엔 비효율적이라고 생각해서 루트가 되면 확실히 높이가 길어질 것 같은 리프노드는 제외시키고 탐색을 하는 방법을 택했다. 딕셔너리 구조를 이용해 각 엣지와 연결된 다른 엣지들을 리스트 형태로 저장한다. 이 때, 해당 엣지가 리프노드라면 리스트의 ..
[프로그래머스] 방의 개수 - Python 코딩테스트 연습 - 방의 개수 [6, 6, 6, 4, 4, 4, 2, 2, 2, 0, 0, 0, 1, 6, 5, 5, 3, 6, 0] 3 programmers.co.kr 문제 설명 원점(0,0)에서 시작해서 아래처럼 숫자가 적힌 방향으로 이동하며 선을 긋습니다. ex) 1일때는 오른쪽 위로 이동 그림을 그릴 때, 사방이 막히면 방하나로 샙니다. 이동하는 방향이 담긴 배열 arrows가 매개변수로 주어질 때, 방의 갯수를 return 하도록 solution 함수를 작성하세요. 제한사항 배열 arrows의 크기는 1 이상 100,000 이하 입니다. arrows의 원소는 0 이상 7 이하 입니다. 방은 다른 방으로 둘러 싸여질 수 있습니다. 입출력 예 arrows return [6, 6, 6, 4, 4, 4..
[리트코드(LeetCode)] 297. Serialize and Deserialize Binary Tree - Python Serialize and Deserialize Binary Tree - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com - 를 학습하면서 수록된 코드를 참고하였습니다. - 풀이 Tree 구조의 데이터를 직렬화 & 역직렬화 시키는 메소드를 구현하는 문제. 직렬화는 '이진 트리'와 같은 데이터 구조는 논리적 구조이기 때문에 이를 파일이나 디스크에 저장하기 위해서 물리적인 형태로 바꿔주는 것을 말한다. (역직렬화는 물리적인 형태를 논리적인 구조로 변경하는 것) 먼저 s..
[프로그래머스] 지형 이동 - Python 코딩테스트 연습 - 지형 이동 [[1, 4, 8, 10], [5, 5, 5, 5], [10, 10, 10, 10], [10, 10, 10, 20]] 3 15 [[10, 11, 10, 11], [2, 21, 20, 10], [1, 20, 21, 11], [2, 1, 2, 1]] 1 18 programmers.co.kr 문제 설명 N x N 크기인 정사각 격자 형태의 지형이 있습니다. 각 격자 칸은 1 x 1 크기이며, 숫자가 하나씩 적혀있습니다. 격자 칸에 적힌 숫자는 그 칸의 높이를 나타냅니다. 이 지형의 아무 칸에서나 출발해 모든 칸을 방문하는 탐험을 떠나려 합니다. 칸을 이동할 때는 상, 하, 좌, 우로 한 칸씩 이동할 수 있는데, 현재 칸과 이동하려는 칸의 높이 차가 height 이하여야 합니다. ..
[프로그래머스] 카카오 블라인드 리쿠르트 2021 - 메뉴 리뉴얼 (Python) programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr [문제 설명] 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을 지 고민하던 스카피는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 ..
[리트코드(LeetCode)] 큐로 스택 구현하기, 스택으로 큐 구현하기 - Python leetcode.com/problems/implement-queue-using-stacks Implement Queue using Stacks - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com leetcode.com/problems/implement-stack-using-queues Implement Stack using Queues - LeetCode Level up your coding skills and quickly land a job. This is t..
[리트코드(LeetCode)] 739. Daily Temperatures - Python leetcode.com/problems/daily-temperatures/ Daily Temperatures - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com - 를 학습하면서 수록된 코드를 참고하였습니다. - 풀이 leetcode 42번 문제 Trapping Rain Water와 유사한 방법으로 풀이할 수 있다. 스택에 현재의 인덱스를 계속 쌓다가, 현재의 온도가 stack의 가장 위에 존재하는 인덱스의 온도보다 크다면, 스택에서 인덱스를 pop()하고 현재 ..