본문 바로가기

분류 전체보기

(2313)
(Python3) - LeetCode (Medium) : 2924. Find Champion II https://leetcode.com/problems/find-champion-iigraph(DAG) 문제였습니다.📕 풀이방법📔 입력 및 초기화1. 각 node별 진입하는 노드의 개수 in_degree_count를 선언 후 n-1까지 0으로 채워 초기화합니다. 2. edges를 돌며 e[1]에 진입하는 in_degree_count를 세줍니다. 3. 정답 변수 champion, champion 수 champion_count를 선언 후 각각 -1, 0으로 초기화합니다.📔 풀이과정n-1까지 for loop를 수행하며 다음을 진행합니다.1. 각 node별 진입 노드가 존재여부를 파악합니다. 존재하지 않다면 champion이므로 champion을 현 node로 갱신 후 champion_count를 1더해..
(SQL) - LeetCode (easy) 1967. Number of Strings That Appear as Substrings in Word https://leetcode.com/problems/number-of-strings-that-appear-as-substrings-in-word/description/문자열을 다뤄본 문제였습니다.📕 풀이방법📔 입력 및 초기화정답 변수 answer 선언 후 0으로 초기화합니다.📔 풀이과정patterns의 원소를 순회하며 word에 해당 pattern이 존재한다면 부분 문자열이므로 answer를 1씩 증가시켜줍니다.📔 정답 출력 | 반환answer를 반환합니다.📕 Code📔 Python3class Solution: def numOfStrings(self, patterns: List[str], word: str) -> int: answer = 0 for p in p..
(SQL) - LeetCode (easy) 1975. Maximum Matrix Sum https://leetcode.com/problems/maximum-matrix-sum/description구현 문제였습니다.📕 풀이방법📔 입력 및 초기화행 r, 열 c, 음수의 개수 minus_count, 가장 작은 절댓값 min_abs_num, 원소들의 총 합 sum을 선언 후 적절히 초기화합니다.📔 풀이과정1. matrix의 원소를 순회하며 음수의 개수를 minus_count에 세주고 최소 절댓값은 min_abs_num에 저장합니다.📔 정답 출력 | 반환1. minus_count가 짝수라면: 인접한 부분들을 자유롭게 -1로 곱해 부호를 바꿀 수 있으므로 minus_count가 짝수라면 어떻게든 모든 원소를 양수로 만들 수 있습니다. 즉, 2개의 음수가 멀리 떨어져 있더라도 인접한 원소들을..
(SQL) - LeetCode (easy) 1965. Employees With Missing Information https://leetcode.com/problems/employees-with-missing-information/description/union을 사용해본 문제였습니다.📕 풀이방법📔 풀이과정1. employees에서 salaries를 left join하게되면 salaries에만 있는 employee_id의 경우 사라지게 되며 employees에 있는 id만 남게 됩니다. 해당 id들을 distinct select해 줍니다. 2.  반대로 salaries에서 employees를 left join하게되면  employees에만 있는 employee_id가 사라지며 salaries에 있는 id만 남게 됩니다. 해당 id들을 distinct select해줍니다. 3. 두 id들을 union해서 id에 ..
OSIV란 무엇인가? 🍳머리말JPA에서 자주 등장하는 OSIV(Open Session In View) 개념에 대해 알아보겠습니다. 이 글은 OSIV의 정의, 특징, 장단점, 실무 사용 예제 그리고 최신 트렌드에 대해 설명합니다.📕 정의📔 OSIVHibernate와 JPA에서 사용되는 개념. 영속성-컨텍스트(Session 또는 EntityManager)의 생명주기를 요청-응답(View Rendering) 전체로 확장하는 전략. View에서 데이터에 접근할 때도 DB 연결을 유지할 수 있도록 설계📑 영속성 컨텍스트JPA에서 엔티티를 관리하는 공간EntityManager가 엔티티를 "1차 캐시"처럼 관리데이터베이스에서 가져온 엔티티를 영속성 컨텍스트가 관리하기 때문에 같은 트랜잭션 안에서는 동일한 엔티티를 여러 번 조회..
(Python3) - LeetCode (Medium) : 1072. Flip Columns For Maximum Number of Equal Rows https://leetcode.com/problems/flip-columns-for-maximum-number-of-equal-rows/구현 문제였습니다.📕 풀이방법📔 풀이과정같은 형식을 가진 row들을 정리해 map형태로 저장해줍니다.같은 형태란 일방적으로 비트들을 정렬한 후 비교했을 때 두 행의 원소들이 모두 같다는 의미입니다.python에서는 Counter를 이용해 쉽게 패턴의 개수를 저장할 수 있습니다.1. nomalize함수를 선언해 row의 첫 번째 원소를 기준으로 행의 원소들을 xor한 연산 결과로 저장된 tuple들을 반환하도록 구현합니다.예를 들어, row[0]이 0이고 한 행이 [1,0,1] 라면 for loop를 수행해 row[0]과 xor연산하게 되면 행 그대로 반환됩니다. ro..
(Python3) - LeetCode (Medium) 2257. Count Unguarded Cells in the Grid https://leetcode.com/problems/count-unguarded-cells-in-the-grid/description/2차원 배열을 순회하는 것을 구현해본 문제였습니다.📕 풀이방법📔 입력 및 초기화1. m행 n열 2차원 배열 grid를 선언 후 wall은 'W'로 guard는 'G'로 표기해놓습니다. 2. m행 n열 2차원 배열 checked를 선언 후 모두 0으로 초기화합니다. 3. 4방향 동서남북에 대한 dr, dc를 선언 후 방향에 맞게 선언해줍니다. 4. deque 변수 dp를 선언해 줍니다. 5. 정답 변수 answer를 선언 후 0으로 초기화합니다.📔 풀이과정1. guards를 순회하며 각 위치에 해당하는 grid를 'G'로 표시합니다. 또한 이 위치의 checked또한..
(Python3) - 프로그래머스(연습문제): 귤 고르기 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr정렬 문제였습니다.📕 풀이방법📔 입력 및 초기화1. 정답 변수를 선언 하고 0으로 초기화합니다. 2. 귤 크기와 개수를 저장할 tangerine_map을 선언 후 적절히 초기화합니다. 3. 귤의 개수에 대해 내림차순으로 정렬해줍니다.* k이상 개수만큼 담기만하면 되므로 최소의 종류로 담기 위해서는 해당 정렬이 필요합니다.📔 풀이과정여태 담은 귤의 개수 sum을 선언 후 0으로 초기화합니다. tangerine_map의 원소에 대해 순회하며 ..