즐겨찾기가 가장 많은 식당 정보 출력하기
·
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을 해주었다. 모든 노드를 방문했을 때, 가장 뒤에 등장한 노드를 리턴해줘야 했으므로 값..
12/9 풀이
·
Algorithm/Leetcode
Graph Valid Treehttps://neetcode.io/problems/valid-tree NeetCode neetcode.io해당 무방향 그래프가 올바른 트리 형태인지 판단하는 문제였다.올바른 트리이기 위한 조건은간선의 갯수가 노드 - 1개일 것.모든 노드가 서로 연결되어 있을 것사이클 x무방향 그래프인 경우에 유니온 파인드를 사용해서 두 노드가 같은 집합에 속하는지 판단하고, 같은 집합에 속하는 경우 사이클이 있다고 판단하여 트리 조건에 부합하지 않도록 구현했다. 방향이 있는 그래프에선 위상 정렬을 사용하여 사이클 여부를 판단했지만, 위상 정렬은 무방향 그래프에선 잘 사용하지 않는다고 한다.Number of Connected Components in an Undirected Graphhttp..
12/8 풀이
·
Algorithm/Leetcode
Course Schedule Ihttps://neetcode.io/problems/course-schedule NeetCode neetcode.io 위상정렬을 사용하여 사이클이 존재하는지 여부를 판단하는 문제다.차수가 0인 지점을 큐에 넣어 BFS를 돌리고, 다른 지점을 방문할 때마다 차수를 하나씩 빼주고 0이 될때마다 다시 큐에 넣는다. Course Schedule IIhttps://neetcode.io/problems/course-schedule-ii NeetCode neetcode.io 마찬가지로 위상정렬을 이용하는 문제다. 다른점이 있다면, Input: numCourses = 3, prerequisites = [[1,0]]Output: [0,1,2]이런식으로 주어질 때, 0은 1의 선행과목이 되지..
12/7 풀이
·
Algorithm/Leetcode
Pacific Atlantic Water Flowhttps://neetcode.io/problems/pacific-atlantic-water-flow NeetCode neetcode.io 우선 태평양, 대서양과 인접해있는 좌표들을 각각 큐에 담아주고 BFS를 실행해주며 방문 체크하면 됐다. 문제에서 제일 헷갈렸던 부분은 현재 높이보다 다음 지점의 높이가 같거나 크다면 이동가능하다고 생각했는데, 해당 문제에서의 BFS의 탐색 방식은 이 반대로 현재 위치에서의 물이 어디서 왔는지 탐색하고 있다.BFS를 돌리고 난 후, 두개의 방문 배열들을 비교해서 교집합만 따로 결과값에 넣어주면 되는 문제였다. Surrounded Regionshttps://neetcode.io/problems/surrounded-regio..
12/5 풀이
·
Algorithm/Leetcode
Number of Islandshttps://neetcode.io/problems/count-number-of-islands NeetCode neetcode.io 연결되지 않고 이어지는 BFS의 갯수를 찾으면 되는 문제였다. BFS 메서드가 실행되는 횟수만 구하면 되는 기본 문제.Max Area of Islandshttps://neetcode.io/practice NeetCode neetcode.io백준 그림 문제였나? 해당 문제랑 똑같다고 생각한다.BFS를 돌면서 최대 넓이를 계속 갱신해주면 되는 기본적인 유형 문제다. Walls And Gates https://neetcode.io/problems/islands-and-treasure NeetCode neetcode.io해당 문제는 살짝 머리를 써야했..
11/2 풀이
·
Algorithm/백준
boj 7576 토마토BFS를 여러 지점에서 돌려야 할 때를 어떻게 할것인가?배열에서 익은 토마토에 해당하는 좌표에서 BFS를 돌렸더니 최소 일수를 구할 수 없었다. BFS 특성 상 한 좌표에서 시작해 끝까지 돌기 때문이다. 따라서, 익은 토마토에 해당하는 좌표를 모두 큐에 넣고 한번에 돌려준다면 동시에 BFS를 돌려서 최소 일수를 구할 수 있다. boj 7579 토마토3차원 배열에서의 BFS?상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수이렇게 주어질 때,board = new int[h][n][m];형태가 되어야 할 것이다.나머지 로직은 앞의 토마토 문제와 동일하다.
[백준] Silver I. 회전 초밥
·
Algorithm/백준
https://www.acmicpc.net/problem/2531 문제 유형슬라이딩 윈도우투 포인터 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class boj2531 { static int n, d, k, c; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer s..