78. Subsets
·
Algorithm/Leetcode
https://leetcode.com/problems/subsets/description/ Given an integer array nums of unique elements, return all possible subsets (the power set).The solution set must not contain duplicate subsets. Return the solution in any order. 배열이 주어질 때, 해당 배열의 모든 부분집합을 리턴하는 문제였다. (공집합 포함)해당 문제를 풀면서 느꼈던 것은 자바의 List 인터페이스 메서드에 대해서 잘 모르고 쓰고있구나 하는 생각이 들었다. 문제를 풀다가 List 형태에 Integer 값인 nums[i]를 추가했더니 error: incomp..
494. Target Sum
·
Algorithm/Leetcode
https://leetcode.com/problems/target-sum/description/?envType=daily-question&envId=2025-01-04 You are given an integer array nums and an integer target.You want to build an expression out of nums by adding one of the symbols '+' and '-' before each integer in nums and then concatenate all the integers.For example, if nums = [2, 1], you can add a '+' before 2 and a '-' before 1 and concatenate th..
1930. Unique Length-3 Palindromic Subsequences
·
Algorithm/Leetcode
https://leetcode.com/problems/unique-length-3-palindromic-subsequences/description/?envType=daily-question&envId=2025-01-04 주어진 문자열 s에서 길이가 3이고 중복되지 않은 팰린드롬의 갯수를 구하는 문제였다. 나는 백트래킹을 통해서 길이가 3인 모든 문자열을 찾아 Set에 넣어 중복되지 않은 문자열들을 구했다. 그 다음에, Set을 순회하며 해당 문자열이 팰린드롬인지 판단해주었다. 예제는 통과했지만, s의 길이가 10만이기 때문에 백트래킹을 시도했을 때 당연히 시초가 터졌다. 시간복잡도를 O(nlogn), 혹은 O(n) 이하로 줄일 방법을 찾아야 했다. 정답 풀이)class Solution { publ..
3286. Find a Safe Walk Through a Grid
·
Algorithm/Leetcode
https://leetcode.com/problems/find-a-safe-walk-through-a-grid/description/ You are given an m x n binary matrix grid and an integer health.You start on the upper-left corner (0, 0) and would like to get to the lower-right corner (m - 1, n - 1).You can move up, down, left, or right from one cell to another adjacent cell as long as your health remains positive.Cells (i, j) with grid[i][j] = 1 are ..
조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
·
Algorithm/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/164671 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제USED_GOODS_BOARD와 USED_GOODS_FILE 테이블에서 조회수가 가장 높은 중고거래 게시물에 대한 첨부파일 경로를 조회하는 SQL문을 작성해주세요. 첨부파일 경로는 FILE ID를 기준으로 내림차순 정렬해주세요. 기본적인 파일경로는 /home/grep/src/ 이며, 게시글 ID를 기준으로 디렉토리가 구분되고, 파일이름은 파일 ID, 파일 이름, 파일 확장자로 구성되도록 출력해주세요. 조회수가 가장 높은 게시물은 하나만 존..
자동차 평균 대여 기간 구하기
·
Algorithm/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/157342 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간(컬럼명: AVERAGE_DURATION) 리스트를 출력하는 SQL문을 작성해주세요. 평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬해주시고, 평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순 정렬해주세요. 오답 코드SELECT ca..
즐겨찾기가 가장 많은 식당 정보 출력하기
·
Algorithm/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/131123 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요. 이 문제를 보고 group by 음식 종류를 하고, max값을 가져오면 된다고 생각했다.SELECT FOOD_TYPE, REST_ID, REST_NAME, MAX(FAVORITES)FROM REST_INFOGROUP BY FOOD_TYPE..
SQL
·
Algorithm/프로그래머스
이름이 없는 동물의 이름은 "No name"으로 표시해 주세요.IFNULL(NAME, "No name") as NAMEIF NULL을 통해서 SELECT 시점에서 거르거나,CASE WHEN NAME IS NULL THEN 'No name' ELSE NAMEEND NAME,CASE-WHEN 문법을 사용하여 거르기.COALESCE를 사용하는 방법도 존재.테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요.ORDER BY PRICE descLIMIT 1 ORWHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT) 이런식으로 서브쿼리를 사용하는 방법도 있는듯 하..
12/10 ~ 13 풀이
·
Algorithm/Leetcode
Contains Duplicate배열에 중복된 값이 있는지 체크하는 문제로, 간단하게 Set을 사용하여 배열의 길이와 비교해주었다.Valid Anagram단어의 등장 횟수를 비교하여 같다면 valid인 문제였다. 맵을 두개를 사용하여 풀었으나, 한개를 사용하여 한 문자열의 등장횟수를 더하고, 다른 문자열에선 등장횟수를 빼준다면 충분히 맵을 한개만 사용하여 풀이할 수 있었다.Two Sum리트코드 국민 문제. 관건은 O(n^2) 시간보다 어떻게 줄일 수 있느냐였다.맵을 사용하여 현재 값과 인덱스를 넣어주고, 만약에 (target - 현재값)이 맵에 존재한다면, 인덱스를 리턴해줬다.Group Anagrams이 문제를 풀면서 String을 어떻게 정렬하는지 까먹어서 인터넷을 참고했다.char [] chars =..
12/10 풀이
·
Algorithm/Leetcode
Redundant Connectionhttps://neetcode.io/problems/redundant-connection NeetCode neetcode.io 이 문제와 비슷한 느낌을 받았다.https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 실제로, 비슷하게 풀이하여 정답을 맞출 수 있었다.처음부터 각 노드의 연결된 간선을 끊어주며, 끊어졌을 때 모든 노드를 방문할 수 있다면 정답으로, 아니라면 skip을 해주었다. 모든 노드를 방문했을 때, 가장 뒤에 등장한 노드를 리턴해줘야 했으므로 값..