전체 글 111

[프로그래머스 LV2] - 주식가격 c++

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 스택으로 구현하려고 생각해봤는데, 도저히 방법이 떠오르지 않아서 GPT에게 물어봤다. stack에다가 원소를 넣는 방법만 생각했던 게 패인이었다. stack에 index를 넣는 방법을 사용하면, 그 인덱스를 가지고 price배열에도 접근할 수 있고, answer배열에 그 인덱스에 맞는 위치에 원하는 값을 넣을 수 있다. 코드 #include #include using namespac..

[프로그래머스 LV5] - 상품을 구매한 회원 비율 구하기(join) SQL

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131534 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 LV5라고 적혀있어서 쫄았는데, 풀만했다. 코드 -- 코드를 입력하세요 SELECT year(sales_date) as year, month(sales_date) as month, count(distinct user_id) as purchased_users, round(count(distinct user_id) / (select count(distinct user_id) from ..

[프로그래머스 LV4] - 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기(join) SQL

문제 https://school.programmers.co.kr/learn/courses/30/lessons/157339#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 복잡한 문제였다. 여태 푼 sql문제 중 가장 오래걸렸다. 처음 접근 할 때, natural join을 이용해서 풀려고 해봤는데, 잘 안 됐다. 또 discount_rate이 문자열 데이터인 줄 착각해서 좀 헤메기도 했다. 문제를 다시보니 정수 데이터였다. 다음부턴 문제를 잘 봐야겠다. 그래서 다른 사람 풀이를 참고했다. from 문에서 join하기 전에 subquery를 ..

[프로그래머스] - 자동차 대여 기록에서 장기/단기 대여 구분하기 SQL - String, Date

문제 https://school.programmers.co.kr/learn/courses/30/lessons/151138 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 코드 SELECT history_id, car_id, date_format(start_date, '%Y-%m-%d') as start_date, date_format(end_date, '%Y-%m-%d') as end_date, case when datediff(end_date, start_date) >= 29 then '장기 대여' else '단기 대여' end as rent_t..

[프로그래머스 LV2] - 다리를 지나는 트럭(스택/큐) c++

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42583# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 구현했는데, 정답률이 60퍼가 계속 나왔다. 결국 원인을 찾지 못해서, gemini의 도움을 받았다. 근데 gemini도 틀렸다. gemini코드를 수정하니 정답률 100%가 나왔다. 뭐가 달랐을까.. gemini코드가 좀 더 문제에서 얘기하는 구현과 일치했다. 아마 정답률이 60%였던 이유는 몇몇 테스트케이스에서 트럭이 빠져나가는 타이밍과 들어오는 타이밍이 맞지 않아서였던 거 같..

[프로그래머스] - 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (group by) SQL

문제 https://school.programmers.co.kr/learn/courses/30/lessons/151139 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 쉽게 설명하면, 8월부터 10월까지 대여횟수가 5회 이상인 자동차들에 대해서 해당 기간 동안 월별 대여횟수를 출력하는 문제다. 처음에 문제를 보고 헷갈렸지만, 일단 8월부터 10월까지 총 대여횟수가 5회 이상인 자동차들의 id를 알면, 그 id의 자동차가 월별로 몇 번 대여됐는 지를 탐색하면 된다. 따라서 where안에 subquery를 넣어 car_id가 8-10월 사이 총 대여..

[프로그래머스] - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기(group by) SQL

문제 https://school.programmers.co.kr/learn/courses/30/lessons/157340 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 어려워서 gpt와 gemini에게 물어봤다. gemini 코드가 좀 더 다양한 케이스에 적용 가능해 보인다. 코드 (from gemini) SELECT car_id, CASE WHEN EXISTS ( SELECT * FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY h2 WHERE h2.car_id = h.car_id AND h2.start_date = '202..

[프로그래머스] - 프로세스(스택/큐) c++

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 문제를 보고, 더 쉽게 푸는 방법이 있나 고민 해봤지만, 이게 최선이었다. 문제에서 제시한 내용 그대로 풀었다. 코드 #include #include #include using namespace std; int solution(vector priorities, int location) { int answer = 0; deque q; for (int i=0;i

[프로그래머스] - H-index(정렬) c++

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 간단히 풀리는 문제였다. 코드 #include #include #include using namespace std; int solution(vector citations) { int answer = 0; sort(citations.begin(), citations.end(), greater()); for (int i=0;i= i + 1) answer = i + 1; } return ..

[프로그래머스] - 가장 큰 수(정렬) c++

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42746# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근방법 lamda이용해서 정렬했다. 잘 안되서 chatGPT에게 물어봤다. 근데 string 끼리 A + B > B + A 이런 식으로 비교하면 된다고 알려줬다. string끼리 비교할 수 있는 지 몰랐고, A + B > B + A 아이디어가 좋았다. 처음 숫자가 0이 될 때 output이 0이 나와야하는데, 0000 이런 식으로 나와서 자꾸 실패가 떴다. 그래서 예외를 추가해줬다. 코드..