일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 코드리뷰
- c++
- Gold 5
- 부스트코스
- 코드 리뷰
- 브루트포스
- level 1
- Level 2
- pass
- 삼성 SW 역량 테스트
- BFS
- Web
- 시뮬레이션
- 스택/큐
- 2020 카카오 인턴십
- 백준
- next_permutation
- Level 3
- Level 4
- SWEA
- 2020 KAKAO BLIND
- 프로그래머스
- 백트래킹
- 월간 코드 챌린지
- 구현
- DFS
- 2019 KAKAO BLIND
- DP
- 그리디
- Gold 4
- Today
- Total
목록프로그래머스 (45)
Min:D's Devlog
문제 프로그래머스 스택/큐 - 기능개발 (Level 2) 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제 풀이 접근 방식 기능 개발 시, 뒤에 있는 기능이 더 먼저 개발되면 앞에 있는 기능이 배포될 때 함께 배포될 때, 각 배포마다 몇 개의 기능이 배포되는 지를 구하는 문제이다. 우선, 각 기능들마다 작업 진도 및 개발 속도가 다르기 때문에 이를 고려하여 개발을 완료하기까지 걸리는 일수를 구해 days 벡터에 저장해주었다. 그 후, 첫 번째 기능의 남은 일수를 max로 설정한 후, max보다 남은..
문제 프로그래머스 해시 - 완주하지 못한 선수 (Level 1) 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 문제 풀이 접근 방식 이 문제는 완주하지 않은 한 명의 선수를 찾는 문제이다. 해시를 사용해서 문제를 해결해도 되지만, 정렬을 사용하면 더 쉽게 구현할 수 있을 것 같아 정렬을 하여 문제를 해결하였다. 우선 참여 선수 배열과 완주 선수 배열을 sort를 사용하여 정렬해주었고, 완주 선수의 수만큼 for문을 수행하며 이름이 일치하지 않는 경우일 때의 이름을 리턴해주었다. for문에..
문제 프로그래머스 월간 코드 챌린지 시즌 1 - 쿼드압축 후 개수 세기 (Level 2) 코딩테스트 연습 - 쿼드압축 후 개수 세기 [[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15] programmers.co.kr 문제 풀이 접근 방식 이 문제는 월간 코드 챌린지 시즌 1 (10월)의 2번 문제로, 주어진 배열을 쿼드 트리와 같은 방식으로 압축하여 0과 1의 개수를 구하는 문제이다. 구체적인 압축 ..
문제 프로그래머스 월간 코드 챌린지 시즌 1 - 3진법 뒤집기 (Level 1) 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 문제 풀이 접근 방식 이 문제는 프로그래머스 월간 코드 챌린지 시즌 1 (10월)의 1번 문제로, 주어진 숫자 n을 3진법으로 바꿔 표현하고, 이를 뒤집은 숫자를 다시 10진법으로 표현하는 문제였다. 우선, n을 3진법으로 표현하기 위해 while문을 통해 result 벡터에 n을 3으로 나눈 나머지를 저장해주었다. 이는 n을 3으로 계..
문제 프로그래머스 힙 - 더 맵게 (Level 2) 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 문제 풀이 접근 방식 아래와 같은 방법으로 새로운 음식을 만들 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 구하는 문제이다. 가장 작은 값과 두 번째로 작은 값을 지속적으로 구해야하는 문제이기 때문에, 우선순위 큐를 사용하여 min heap을 구현해주었다. 우선순위 큐에 모든 음식의 스코빌 지수를 넣어준 후, 우선순위 큐의 top에 있는 값(최솟값)이 K 이상일..
문제 프로그래머스 해시 - 베스트앨범 (Level 3) 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 �� programmers.co.kr 문제 풀이 접근 방식 아래의 기준에 따라 베스트 앨범에 곡을 수록할 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하는 문제이다. 우선, 장르별 총 재생 수를 알아야 1번 기준을 충족시킬 수 있기 때문에 unordered_map을 사용하여 장르별 총 재생 수를 구해주었다. 위의 결과를 이용하여 result 벡터에 각 노래의 장르별 총 재생 수, 노래 재생 수, 노래 고유 번호를 ..
문제 프로그래머스 스택/큐 - 프린터 (Level 2) 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 문제 풀이 접근 방식 대기 목록의 문서의 중요도와 요청 문서의 위치가 주어질 때, 요청 문서가 몇 번째로 인쇄되는 지를 구하는 문제이다. 우선 큐에 탐색할 인덱스를 저장해주었다. (0 ~ 문서의 개수 - 1) 그 후, algorithm 헤더에 있는 max_element를 사용하여 가장 높은 우선순위를 찾아주었고, while문에서 큐를 사용하여 우선순위에 따라 인쇄를 수행하였다. 큐의 front에 있는 인덱스(n..
문제 프로그래머스 스택/큐 - 주식가격 (Level 2) 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 문제 풀이 접근 방식 초 단위로 기록된 주식 가격 배열이 주어질 때, 매 시점마다 가격이 떨어지지 않은 기간을 구하는 문제이다. 이 문제는 이중 for문을 사용하여 기준값보다 더 낮은 가격일 때까지의 기간을 측정하여 문제를 해결하였다. 스택을 이용하여 문제를 해결할 수도 있다. 이중 for문을 이용한 방법보다는 더 빨랐으나 큰 차이는 나지 않았다. (스택을 이용한 ..
문제 프로그래머스 Summer/Winter Coding(~2018) - 스킬트리 (Level 2) 코딩테스트 연습 - 스킬트리 programmers.co.kr 문제 풀이 접근 방식 주어진 선행 스킬 순서를 만족하는 스킬 트리의 개수를 구하는 문제이다. 우선, 선행 스킬 순서를 만족하는지 확인하기 위해 idx 벡터를 만들었다. 이 벡터에 각 스킬 트리마다 선행 스킬이 위치하는 인덱스를 저장해주었다. 스킬 트리에 존재하지 않는 선행 스킬의 경우에는 100을 저장해주었다. 이 idx 벡터가 오름차순이어야만 선행 스킬의 순서를 만족하는 스킬 트리가 된다. 그래서 answer에 모든 스킬 트리의 개수를 저장한 후, idx 벡터가 오름차순이 아닌 스킬 트리인 경우 1씩 감소시키며 최종적인 답을 구해주었다. 풀이 코..
문제 프로그래머스 그리디 - 섬 연결하기 (Level 3) 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 문제 풀이 접근 방식 모든 섬을 연결하는 최소 비용을 구하는 문제이다. 이 문제는 프림 알고리즘을 활용하여 문제를 해결하였다. 우선, 주어진 costs 벡터를 활용하여 인접 행렬을 만들어주었다. 그 후, 방문한 섬과 방문하지 않은 섬의 인덱스를 구분해주기 위해, 시작 위치인 0을 visited 벡터에 넣고, 그 외의 섬들의 인덱스를 unvisited 벡터에 넣어주었다. while문에서는 프림 알고리즘을 활용하여 다리를 선택해주었다. 즉, 방문한 섬에서 방문하지 않은 섬으로 연결할 수 있는 다리들 중 최..