전체 글
-
프로그래머스) [SQL 고득점 KIT, JOIN] 없어진 기록 찾기, 있었는데요 없었습니다, 오랜 기간 보호한 동물(1), 보호소에서 중성화한 동물SQL 2020. 6. 4. 21:49
없어진 기록 찾기 코딩테스트 연습 - 없어진 기록 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 유실된 데이터를 찾는 문제기 때문에, OUTER JOIN을 이용해야하는 문제이다. 편의에 따라 LEFT, RIGHT를 사용하면 되는데, LEFT JOIN은 FROM 테이블을 기준으로 오른쪽에 JOIN 테이블은 붙이는 것이고, RIGHT JOIN은 JOIN테이블은 기준으로 FROM 테이블을 왼쪽에 붙이는 것으로 알고있다. WHERE 절로..
-
프로그래머스) [SQL 고득점 KIT] 입양 시각 구하기, 중성화여부, 오랜기간 보호한 동물(2), DATETIME에서 DATE로 변환, NULL 처리하기SQL 2020. 6. 4. 21:36
이전에 풀었던 한번씩 풀었던 문제들이지만, 리마인드를 위해 한번 다시 훑어봤다. 입양 시각 구하기 코딩테스트 연습 - 입양 시각 구하기(2) ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 programmers.co.kr 풀기에 어려웠던 문제였다. 처음에도 그렇고, 지금도 그렇고 아직도 모르겠다.. SQL에서 변수를 설정하고 (편의상)반복문을 돌린 적이 없으니.. 아무튼 MySql에서는 SET을 통해 변수를 설정할 수 있다. SET @변수명 = 초기값; 으로 변수를 만들어 줄 수 있..
-
프로그래머스 Lv.3) 정수 삼각형 (DP)알고리즘/프로그래머스 고득점 Kit 2020. 6. 4. 16:33
정수 삼각형 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 풀이 DP를 푸는 방법 중 두 번 모두 bottom-up 방식으로 문제를 풀었다. 문제의 조건은, 삼각형 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 최대 값이 되는 것이다. 그래서 첫번째 풀었을 때는, 다른 분의 풀이를 보고 이해했던 것 같다. 첫번째 푼 방식은 위의 두 경로 중 최대 값을 같는 경로로 탐색하면서 마지막에 도착한 다음, 정렬을 통해 가장 큰 값을 리턴해주었다. 두번째 푼 방식은, 이 경우, out of idx 방지를 신경써주지 않아도 되고, sort를 따로 해주지 않아도 된다는 생각에서 풀이 ..
-
MySQL) ChallengesSQL 2020. 6. 4. 15:03
Challenges Challenges | HackerRank Print the total number of challenges created by hackers. www.hackerrank.com 해도해도 안는다... 어렵고 어렵다.. ㅠㅠ 사이트에서 Join 문제 중에 딱 중간 난이도 문제인데, 어제도 그렇고 오늘도 그렇고 풀지 못했다.. 각각 해커가 주최한 대회의 수를 구하고, 최대값인 경우에만 모든 해커 리스트를 보여주고, 최대값이 아닌 경우에는 대회의 수가 겹치면 보여주지 않는 Query를 짜야하는게 문제 조건이다. 어찌어찌 대회수를 구하고 최대값부터 정렬을 해주기는 했으나, 최대값이 아닌 경우 대회 수가 겹칠 때를 제거하지 못했다. 그렇게 40분? 정도가 흐르고 포기했다... 그리고 구글링을 ..
-
프로그래머스 Lv.3) 등굣길 (DP)알고리즘/프로그래머스 고득점 Kit 2020. 6. 4. 14:45
등굣길 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 풀이 전에 풀었던 방법과 오늘 푼 방법이 같다. 다만, 차이점이 있다면 처음에는 map을 생성하고, 모든 길을 1로 적어뒀다. 그런 뒤에, 입력받은 웅덩이 위치를 0으로 표시하고, 웅덩이에 막힌 길을 0으로 표시했다. 맵이 완성되면 맵을 돌면서 갈 수 있는 방법을 더해가며 답을 구했다. 오늘 푼 풀이도 위와 같다고 보면 된다. 처음부터 dp 배열을 생성하고, 웅덩이만 -1로 표현해줬다. 그리고 dp를 돌면서 위와 왼쪽 길이 웅덩이인지 아닌지만 ..
-
BOJ) 부분수열의 합 2알고리즘/백준 2020. 6. 3. 23:23
부분수열의 합 2 1208번: 부분수열의 합 2 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 40, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 풀이 오늘 문제가 너무 안풀려서 하나만 더 풀어보자 하고 기출문제와 유사한 문제라고해서 풀어봤다. 오랜만에 백준 문제를 풀어서 그런지 어려웠다. 그리고 백준이 바로 코딩하기에 친절하지가 않아서 처음 구조를 잡아나갈 때를 제외하고는 ide힘을 빌려야했다.. ㅠ N개의 정수로 이루어진 배열에서 부분 수열의 합이 S가 되는 경우의 수를 구하는 문제다. N은 40 이하의 수, S는 -1,000,000 ~ 1,00..
-
MySQL) Ollivander's InventorySQL 2020. 6. 3. 18:41
Ollivander's Inventory Ollivander's Inventory | HackerRank Help pick out Ron's new wand. www.hackerrank.com 참 어렵지 않은 것 같으면서도 어려운 문제였다. 결론적으로 내 힘으로 풀지 못했다. 같은 코드에서 돈이 최소로 드는 지팡이 중에 힘이 센 순서대로, 연식이 오래된 순서대로 보여주는 쿼리문을 작성하라고 조건이 있는데, 같은 코드에서 돈이 최소인 지팡이만 뽑아내는데 실패했다. 단순히 WANDS와 WANDS_PROPERTY만 INNER JOIN을 통해 엮어주어 실패한 것 같다. ( 아직까지도 조인문을 한번만 이용하고도 풀 수 있는 방법이 있는지 모르겠다. 없을 것 같다..) 구글링을 통해 Self Join을 이용하는 방..
-
프로그래머스 Lv.3) N으로 표현 (DP)알고리즘/프로그래머스 고득점 Kit 2020. 6. 3. 18:30
N으로 표현 코딩테스트 연습 - N으로 표현 programmers.co.kr 풀이 고득점 Kit의 DP에 있는 문제다. 예전에 풀었을 때, DP로 풀지 않고 DFS로 풀었기 때문에 DP로 풀고자 했지만, 실패했다. 그래서 검색을 해봤더니 4중 for문을 돌리면서 답을 찾는 글들만 보였다. 좌표를 탐색하는 시뮬레이션 문제가 아닌 이상은, 4중 for문이 가독성이 더 떨어지고 이해하기 힘들다는 주관적인 의견이다. 물론, 머리가 좋으신 분들은 이해하시는데 문제가 없겠지만, 나같은 사람들이 범접할 수 있는 영역이 아닌 것 같았다. DFS의 방법은 만들 수 있는 모든 수를 가지고 4칙 연산을 진행하는 것이다. 문제의 조건에 따라 문자 N 사용 횟수가 8이 넘어가면 -1을 반환하기 때문에, DFS가 가능했다. 또한..