전체 글
-
위장프로그래머스(Programmers) 2021. 12. 1. 10:41
제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothes의 모든 원소는 문자열로 이루어져 있습니다. 모든 문자열의 길이는 1 이상 20 이하인 자연수이고 알파벳 소문자 또는 '_' 로만 이루어져 있습니다. 스파이는 하루에 최소 한 개의 의상은 입습니다. #include #include #include using namespace std; int solution(vector clothes) { int answer = 1; map clothMap; // key : 옷 종류, value : 갯수 for(int i=0; i< clothes.size(); i++) { c..
-
없어진 기록 찾기 | ORACLE프로그래머스 SQL 2021. 11. 30. 21:30
따라서 SQL문을 실행하면 다음과 같이 나와야 합니다. ANIMAL_ID NAME A349733 Allie A349990 Spice SELECT B.ANIMAL_ID, B.NAME FROM ANIMAL_INS A, ANIMAL_OUTS B WHERE 1=1 AND A.ANIMAL_ID (+)=B.ANIMAL_ID AND A.ANIMAL_ID IS NULL ORDER BY B.ANIMAL_ID; => OUTER JOIN을 이용하여 문제를 해결하였습니다. => A에는 없고, B에는 있는 튜플을 찾아야 합니다. => A의 ANIMAL_ID가 없는 녀석을 걸러주면 원하는 값을 구할 수 있습니다. => ORDER BY를 사용하여 데이터를 정렬합니다.
-
있었는데요 없었습니다 | ORACLE | 오라클프로그래머스 SQL 2021. 11. 29. 21:57
=> left outer 조인 혹은 INNER JOIN을 해야 하는 문제입니다. => INNER JOIN을 한 이후에 B 테이블에 있는 값들로 가져오면 틀렸다고 나옵니다. (아마도 B 테이블에 빈칸이 있거나, 정합성에 문제가 있나 봅니다.) SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_INS A, ANIMAL_OUTS B WHERE 1=1 AND A.ANIMAL_ID = B.ANIMAL_ID AND A.DATETIME > B.DATETIME ORDER BY A.datetime ;
-
프린터프로그래머스(Programmers) 2021. 11. 28. 21:04
#include #include #include #include #include #include using namespace std; int solution(vector priorities, int location) { int answer = 1; queue arr; //first : priority, second : index priority_queue priQue; for(int i=0; i queue와 priority queue를 사용하는 문제입니다. => priority를 사용하지 않을 경우 매번 지금 queue에 남아 있는 원소들 중 priority가 가장 높은 아이가 누구인지를 for문을 통해 찾아야 합니다. => 저는 이런방식을 사용하려 했지만, 오류가 나였으며 우선순위 큐를 사용할 경우 삽..
-
입양시각 구하기(2)프로그래머스 SQL 2021. 11. 27. 18:40
예시 SQL문을 실행하면 다음과 같이 나와야 합니다. HOUR COUNT 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 3 8 1 9 1 10 2 11 13 12 10 13 14 14 9 15 7 16 10 17 12 18 16 19 2 20 0 21 0 22 0 23 0 SELECT HOUR, COUNT(O.DATETIME) AS COUNT FROM ( SELECT LEVEL-1 AS HOUR FROM DUAL CONNECT BY LEVEL LEFT JOIN 하는 방법을 알아야 풀 수 있는 문제입니다. => DUMMY TABLE에서 1~23까지 비어있는 테이블을 작성한 후, ANIMAL_OUTS에 있는 시간 값들과 LEFT JOIN을 걸어 표현할 수 있습니다. ** MYSQL과 ORACLE의 문..
-
가장 큰 수프로그래머스(Programmers) 2021. 11. 26. 21:43
#include #include #include #include #include using namespace std; bool cmp(string A, string B) { return A+B > B+A; } string solution(vector numbers) { string answer = ""; vector arr; for(int i=0; i string형으로 변환 후, 해당 배열을 큰 순으로 정렬하는 과정이 필요합니다. => cmp 함수를 생성해 해당 배열을 sorting합니다. *** string형태의 숫자이지만 '1'뒤에 '2'가, '2'뒤에 '3'이 있으므로 cmp함수로 비교를 하여도 숫자형의 비교와 다르지 않습니다. => 정렬된 배열은 이미 각 원소중 가장 큰 부분의 수로 정렬되어 있는..
-
K번째 수프로그래머스(Programmers) 2021. 11. 25. 20:31
입출력 예 설명 [1, 5, 2, 6, 3, 7, 4]를 2번째부터 5번째까지 자른 후 정렬합니다. [2, 3, 5, 6]의 세 번째 숫자는 5입니다. [1, 5, 2, 6, 3, 7, 4]를 4번째부터 4번째까지 자른 후 정렬합니다. [6]의 첫 번째 숫자는 6입니다. [1, 5, 2, 6, 3, 7, 4]를 1번째부터 7번째까지 자릅니다. [1, 2, 3, 4, 5, 6, 7]의 세 번째 숫자는 3입니다. #include #include #include #include using namespace std; vector solution(vector array, vector commands) { vector answer; int comLimit = commands.size(); for(int i=0; i..