프로그래머스

알고리즘/DFS BSF

프로그래머스 - 도넛과 막대 그래프

문제 https://school.programmers.co.kr/learn/courses/30/lessons/258711 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그래프에 있는 도넛, 막대, 8자 그래프의 개수를 구하는 문제였다. 문제 풀이 사실 카카오 코딩테스트를 풀 때 이 문제는 시간이 없어서 덜 푼 문제였었다. 그때도 진입 노드를 저장해 진입 개수가 0인 곳이 root라고 생각은 했었는데, 풀다가 시간이 다 가버렸다.. 먼저 edges를 돌며 그래프를 만들고, 그래프를 만들면서 in에 각 노드의 진입 개수를 저장했다. 처음에는 진입 노드가 0이..

알고리즘/구현

프로그래머스 - 베스트앨범

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 플레이 횟수가 더 많은 장르의 음악 중 상위 2개 음악씩 뽑아 플레이 리스트를 만드는 문제였다. 문제 풀이 레벨 3의 문제여서 어려울 줄 알았는데 생각보다 쉬웠다. map에 저장하고.. vector 정렬만 해주면 끝! 별다른 오류도 없었다. 하하. 코테 준비를 하면서 프로그래머스의 알고리즘 고득점 kit의 문제를 푸는 중인데 이 문제로 해시 문제는 다 풀었다. 우하하 #include #inc..

알고리즘/구현

프로그래머스 - 순위 검색

문제 https://school.programmers.co.kr/learn/courses/30/lessons/72412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건에 해당하는 사람의 수를 구하는 문제였다. 문제 풀이 완전탐색을 하게 될 경우 5000 * 100000번의 연산을 해야 해서 절대 시간 안에 못 풀 것 같았다. 점수순으로 정렬 후 조건으로 찾아볼까도 했는데 많은 시간이 줄어들 것 같진 않았다. 그래서 5차원 벡터를 MAP 처럼 만들어 사용했다. 먼저 info의 정보를 분해해서 벡터에 저장하고, query 또한 같은 방법으로 분해해서 어떤..

알고리즘/구현

프로그래머스 - 주차 요금 계산

문제 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 입차된 차량과 출차된 차량의 시간을 계산해 차량별 주차 요금을 계산하는 문제였다. 문제 풀이 먼저 records 벡터를 하나씩 뜯어 입차 차량, 출차 차량, 차량별 시간 map에 저장했다. 이때 처음 들어온 차량이면 answer를 위해 answerCarOrder에 push했고 출차 차량인 경우에는 시간을 계산해 timeMap에 저장했다. 모든 records를 저장한 후, 출차 기록이 없는 차..

알고리즘/동적 계획법 (DP)

프로그래머스 - 코딩 테스트 공부

문제 https://school.programmers.co.kr/learn/courses/30/lessons/118668 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 모든 문제를 풀 수 있는 알고력과 코딩력을 구하는 데 걸리는 최소 시간을 구하는 문제였다. 문제 풀이 DP로 풀었다. cost 1로 알고력 1 올리기 cost 1로 코딩력 1 올리기 문제를 풀어 알고력/코딩력 올리기 처음 풀이로는 효율성 테스트 10번이 어떤 수를 써도 시간 초과가 나서(450 * 450 * 6) maxAlp * maxCop * problems 만큼 걸리도록 다시 풀었다. ..

알고리즘/그리디

프로그래머스 - 두 큐 합 같게 만들기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/118667# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr pop과 push를 해서 주어진 두 큐의 합을 같게 만드는 문제였다. 문제 풀이 따로 큐를 만들어 사용하진 않고 주어진 벡터에 push_back 하며 index를 옮겨서 풀었다. 계속 3번, 5번 테케가 틀려서 왜그런가 했는데.. 맨 처음 합을 구하는 for문에서 i sum2){ sum1-=queue1[index1]; sum2+=queue1[index1]; queue2.push_back(..

알고리즘/구현

프로그래머스 - 성격 유형 검사하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 답변으로 성격 유형 4글자를 만드는 문제였다. 문제 풀이 map을 이용해 풀었다. #include #include #include using namespace std; int score[8] = {0, 3,2,1,0,1,2,3}; map myScore; void initMyScore(){ myScore.insert({'R', 0}); myScore.insert({'T', 0}); m..

알고리즘/구현

프로그래머스 - 지형 편집

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12984 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 지형의 블록 높이가 동일하도록 변경하는 cost 값의 최솟값을 구하는 문제였다. 문제 풀이 처음에는 각 높이의 count를 map에 저장하고 각각의 높이에 대해서만 계산하도록 했는데, 계산을 할 때 완전 탐색으로 계산해서 최악의 경우 O(n^2)의 시간이 걸려 실패했고 누적합을 이용해 다시 풀었다. 이상한 점은 cost를 구하는 반복문 안에 if(l[i] == l[i-1]) continue;..

hahihi
'프로그래머스' 태그의 글 목록