차곡차곡 성 쌓기
article thumbnail
[프로그래머스] SQL Level 3 모음(~ing)

1. 즐겨찾기가 가장 많은 식당 정보 출력하기 문제 `REST_INFO` 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요. SELECT FOOD_TYPE, REST_ID, REST_NAME,FAVORITES FROM REST_INFO WHERE (FOOD_TYPE, FAVORITES) in (SELECT FOOD_TYPE, MAX(FAVORITES) FROM REST_INFO GROUP BY FOOD_TYPE) ORDER BY FOOD_TYPE DESC; 어떻게 그룹별로 가장 큰 값을 뽑아 출력할 수 있을지 꽤 고민했다. 정처기 책도 다시 한 번 보고 상관 없지만 정..

article thumbnail
[프로그래머스] SQL Level1 모음

1. 12세 이하인 여자 환자 목록 출력하기 문제 : PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요. SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, 'NONE') AS TLNO FROM PATIENT WHERE GEND_CD = 'W' AND AGE 3000 AND I.INGREDIENT_TYPE = 'fruit_based' ORDER BY TOTAL_ORDER DESC; INNER JOIN 두 테이블에 모두 데이터가 있..

article thumbnail
[프로그래머스] 정렬 : K번째 수

1. 🍎 문제 2. 🤔 접근 구현해야 되는 작업은 다음 3가지이다. 또한 주어진 인덱스는 1부터 시작하는 것에 주의한다. 1. 배열을 i부터 j까지 자른다. 2. 자른 배열을 정렬한다. 3. k번째 요소를 answer 배열에 추가한다. 3. 💡 구현 1. 배열 자르기 | Arrays.copyOfRange ( 원본 배열, 시작인덱스(inclusive), 끝 인덱스(exclusive) ) copyOfRange 함수를 사용하면 원하는 인덱스만큼 배열을 카피할 수 있다. // 배열 자르기 int [] sliceArray = Arrays.copyOfRange(array, commands[t][0]-1, commands[t][1]); 2. 정렬 | Arrays.sort() sort 함수를 사용하면 오름차순 정렬을 ..

article thumbnail
[프로그래머스] Hash : 베스트 앨범 - L3

1. 문제 문제 요약 - 베스트 앨범 수록곡의 고유번호를 차례대로 리턴 - 베스트 앨범 수록 조건 1. 속한 노래가 많이 재생된 장르부터 수록 한다. 2. 장르 별 가장 많이 들은 2곡을 수록한다. 2곡 미만일 경우 1곡만 수록한다. 2. 접근 우선 무엇을 해야하는지 생각한다. 크게 2가지가 있다. 1. 속한 곡의 재생 수가 많은 순으로 장르 정렬 2. 장르별로 가장 많이 재생된 곡 2개 선정 먼저 장르를 어떻게 해시를 이용하여 정렬할 수 있을까 고민했다. 크게 고민된 부분은 장르는 문자열이다 보니 어떤 자료구조를 사용하여 정렬할 지였다. 만약 해시 맵을 이용하여 을 저장하면, 정렬할 때가 문제이다. 곡들의 총 재생 수인 value만 이용하여 정렬하게 될 텐데, value를 통해서 key를 찾을 수 있어..

article thumbnail
[프로그래머스] 의상 : Hash - L2

1. 문제 2. 접근 이 문제랑 매우 비슷한 백준의 '패션왕 신혜빈' 문제랑 매우 비슷해서 그때의 기억을 복기하면서 접근했다. 각 옷의 종류마다 크게 2가지를 선택할 수 있다. 해당 종류의 의상을선택하지 않거나 의상 중 하나를 고르는 것이다. 예제 1를 봤을 때 headear는 2개, eyewear는 1개의 의상이 있다. 이때 headear에서는 아예 선택하지 않거나, yellow_hat을 선택하거나 green-tuban을 선택할 수 있는 경우로 총 3가지가 있다. 같은 옷의 종류는 무조건 하나 이하만 선택할 수 있기 때문이다. 이를 일반화 시키면 i 종류에서 선택할 수 있는 경우 = i 종류의 의상 개수 +1(선택 안하는 경우) 이다. 모든 경우의 수를 구하기 위해 종류마다 경우의 수를 구한 후 곱하면..

article thumbnail
[프로그래머스] 전화번호 목록 : Hash - L2

1. 문제 문제 요약 - 어떤 번호가 다른 번호의 접두어인 경우를 구하라 처음 시도 때 가장 첫 번째 문자열이 다른 문자열들의 접두어가 되는지 판단하는 줄 알고 접근했다가 계속 오답이 나오길래 꽤 생각했다. 문제를 다시보니 "어떤 번호"가 "다른 번호"의 접두어인지 판단하는 문제였다. 문제 요약하는 습관을 기르자! 2. 접근 해시 알고리즘으로 분류되어 있어서 해시를 써야될 것 같은데 도저히 풀 방법이 생각나지 않았다. contains() 함수를 이용해야 될 것 같아서 고민해봤지만 '접두어'인 조건을 어떻게 풀어야할지 몰랐다. contains() 함수를 사용하여, 문자열이 다른 문자열의 포함되는지 알아도 오직 문자열이 시작할 때 포함하고 있어야하기 때문에 어려웠다. 결국 못 풀고 다른 사람의 풀이를 보았다..

article thumbnail
[프로그래머스] 폰켓몬 : Hash - L1

문제 : 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 당신은 최대한 다양한 종류의 폰켓몬을 가지길 원하기 때문에, 최대한 많은 종류의 폰켓몬을 포함..

article thumbnail
[프로그래머스] 완주하지 못한 선수 : Hash (L1)

문제 Hash 알고리즘 - 완주하지 못한 선수 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 비교 | 나의 풀이 import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { HashMap names = new HashMap(); // 1. 입력 받기 for(int i=0; i 0이 아닐 때를 출력 3-2. keySet()으로 for문 바로 이용 for (String player : completion) hm.put(playe..

728x90