본문 바로가기

분류 전체보기

(348)
[프로그래머스/Lv.3] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 제출한 오답 처음 제출한 답안인데 틀렸다. 생각해보니 월별 자동차 ID별 총 대여 횟수를 구해야 하는데, CAR_ID로만 묶을 것이 아니라 월(MONTH)로도 묶어야할 것 같다는 생각이 들었다. SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(*) AS RECORDS FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE MONTH(START_DATE) BETWEEN 8 AND 10 GROUP BY CAR_ID HAVING COUNT..
[프로그래머스/Lv.1] 조건에 맞는 사원 정보 조회하기 - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 먼저 HR_EMPLOYEES와 HR_GRADE를 JOIN한다. SCORE, EMP_NO, EMP_NAME, POSITION, EMAIL은 모두 이 두 테이블에서 가져올 수 있으므로 HR_DEPARTMENT 테이블은 사용하지 않아도 된다. EMP_NO을 기준으로 GROUP BY 한 것은 각 사원들의 상반기, 하반기 평가 점수를 SUM() 하기 위해서이다. 그리고나서 SCORE를 내림차순 정렬(DESC) 해준다. 평가 점수가 가장 높은 사원을 조회하는 것이므로 LIMIT을 이용해 제일 위에 있는..
[프로그래머스/Lv.1] 기사단원의 무기 - Java 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 처음 작성한 코드 - 오답 이번 문제는 1부터 number까지 각 숫자의 약수의 개수를 구한 후, limit을 초과한다면 그 수를 power로 수정해 약수의 개수의 합을 반환하는 문제이다. 처음 작성한 코드는 기존 테스트 케이스에서는 통과했지만 제출을 하니 시간초과로 오답처리 되었다. 찾아보니 약수의 개수를 세는 부분에서 시간 초과가 난 것이었다. 내가 작성한 코드처럼 약수를 구할 때 1부터 number까지 돌며 모든 경우를 탐색한다면 O(N)의 시간복잡도를 가지게 된다. 만약 제한사항대로 num..
[프로그래머스/Lv.1] 신규 아이디 추천(2021 KAKAO BLIND RECRUITMENT) - Java 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 풀이 1단계 - new_id의 모든 대문자를 대응되는 소문자로 치환한다. new_id = new_id.toLowerCase(); 2단계 - new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거한다. 2단계는 new_id를 문자 하나하나 돌면서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)에 해당되지 않으면 지웠다. for (Character c : new_id.toCharArray()) { if (!(c >= 'a' && c = 16..
[프로그래머스/Lv.1] PCCE 기출문제 10번 / 데이터 분석 - Java 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 풀이 데이터를 기준에 맞게 정렬하는 문제였다. 다른 코드들을 보니 람다식과 Comparator가 가장 많이 사용된 것 같다. 내가 작성한 코드의 전체적인 흐름은 다음과 같다. 주어진 ext와 sort_by에 맞는 인덱스 e, s를 구한다. 조건에 맞는 데이터를 넣을 list를 선언한다. data[e]의 값이 val_ext 보다 작을 때만 list에 데이터를 추가한다. sort_by에 해당하는 값을 기준으로 오름차순 정렬한다. list를 int형 배열로 바꾼 후 반환한다. 주어진 ext와 sort_..
[프로그래머스/Lv.1] 2016년 - Java 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 풀이 처음에 어떻게 풀어야할지 막막했다. 왜 이런 날짜, 시간 계산이 잘 안되는지..결국 검색을 해서 보고 푼 문제이다. 먼저 변수를 선언해주었다. dayOfTheWeek에는 금요일부터 화요일까지의 요일을 담고(2016년 1월 1일이 금요일이므로), month에는 1월부터 12월까지 각 월의 일수를 담았다. int answer = 0; String[] dayOfTheWeek = {"FRI","SAT","SUN","MON","TUE","WED","THU"}; int[] month = {31, 29,..
[프로그래머스/Lv.4] 주문량이 많은 아이스크림들 조회하기 - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 제출한 오답 일단 총주문량을 SUM()하지 않은 것도 틀렸지만, 다른 이유가 있었다. SELECT H.FLAVOR FROM FIRST_HALF H JOIN JULY J ON H.SHIPMENT_ID = J.SHIPMENT_ID GROUP BY H.FLAVOR ORDER BY H.TOTAL_ORDER + J.TOTAL_ORDER DESC LIMIT 3 처음에는 뭐가 문제지..했는데 문제 설명 중에 이런 말이 있었다. 이 말은 즉, 출하번호로 묶어도 다른 출하번호로 된 제품이 있다면 누락될 수 있다는..
[프로그래머스/Lv.2] 월별 잡은 물고기 수 구하기 - MySQL 📌 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📌 정답 월별 잡은 물고기의 수를 구해야 하므로, MONTH를 기준으로 GROUP BY 한 후 ID의 개수를 세었다. SELECT COUNT(ID) AS FISH_COUNT, MONTH(TIME) AS MONTH FROM FISH_INFO GROUP BY MONTH ORDER BY MONTH