[Programmers] 광물 캐기
·
Coding Test/Problem Solving
https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. 문제 설명 작업을 끝내기까지 필요한 최소한의 피로도를 구해야 한다.작업을 끝내는 것은 1) 모든 광물을 캐거나, 2) 더 사용할 곡괭이가 없을 때까지이다.곡괭이 하나를 선택하면 광물 5개를 연속으로 캘 수 있다.2. 구현 아이디어 1 - 틀렸습니다곡괭이 하나를 선택하면 광물 5개를 연속을 캘 수 있다고 했으니, 주어진 minerals 배열을 5개씩 나누어 생각해보았다.글자색을 다르게 하여 각 ..
[Programmers] 호텔 대실
·
Coding Test/Problem Solving
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   1. 구현 아이디어 1 - 틀렸습니다백준 1931번 회의실 배정 문제나 저번에 포스팅한 과제 진행하기 문제와 비슷한 그리디 알고리즘 유형이다. 이전에 풀었던 기억을 되살려 아래에 적은 순서대로 풀었다.1. 끝나는 시간을 기준으로 book_time을 정렬한다2. 필요한 객실의 수를 관리하는 벡터 rooms를 만든다3. book_time에 있는 원소(elem)들을 순회하며 rooms에 있는 원소(room=rooms[i])와 비교한다 (2중 반복문)   3-1. 만약 elem의 시작하는 시간 >= room의 끝나는..
[Programmers] 유사 칸토어 비트열
·
Coding Test/Problem Solving
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr1. 문제 설명0번째 유사 칸토어 비트열은 "1"n번째 유사 칸토어 비트열은 n-1번째 유사 칸토어 비트열에서1을 11011로 치환0을 00000로 치환n, l, r이 주어졌을 때 n번째 유사 칸토열에서 [l, r] 구간에서의 1의 개수를 반환해야 한다.  더 자세한 문제 설명이 필요하다면 위 링크 참고 ... 2. 구현 아이디어1 - 틀렸습니다처음에 백준 4779번 칸토어 집합 문제가 떠올라서 재귀를 사용해서 문제에 주어진 내용을 그대로 구현하였다.#include using namespace std;typedef..
[코드트리] 행복한 수열의 개수
·
Coding Test/Problem Solving
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 1. 구현 아이디어간단한 완전탐색 문제이다. 한 행씩 순회하면서 동일한 원소를 의미하는 target 변수를 만든다.최초에는 그 값을 0번째 원소로 두고, 다음 원소와 비교하며 만약에 같다면 동일한 원소가 몇 번 나왔는지를 세는 변수인 cnt를 1 증가시켜준다.만약 다르다면, 해당 원소를 target으로 갱신하고, cnt는 1로 초기화해준 뒤 다음 원소와 비교해준다. cnt가 m 이상일 경우 해당 행은 행복한 수열이므로 행복한 수열의 개수를 세는 변수 ret을 1 증가시켜준다. 이번 문제나 백준 14890번 ..
[Programmers] 석유 시추
·
Coding Test/Problem Solving
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. 구현 아이디어 1 - 시간 초과1. BFS를 사용하여 '각 칸을 시작점으로 했을 때 얻을 수 있는 석유량'을 구한다.2. 1번에서 구한 석유량을 더하여 '해당 열에서 얻을 수 있는 석유량'을 구한다.3. 2번에서 구한 석유량끼리 비교하여 '얻을 수 있는 가장 많은 석유량'을 구한다. #include #include using namespace std;typedef vector> vvb;int dx[4] = {-1, 0, 1, 0};int dy[4] = {0, 1, 0, -1};int solution(vect..
[Programmers] 과제 진행하기
·
Coding Test/Problem Solving
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. 구현 아이디어먼저, 시간 순서에 따라 과제를 진행해야 하므로 plans 배열을 시작 시각 순으로 정렬한다.bool comp(vector a, vector b) { if (a[1]   입출력 예제에 있는 표를 통해 잠시 멈춘 과제를 스택으로 구현해야 한다는 힌트를 얻을 수 있었다. (최근에 멈춘 과제를 먼저 하므로, 선입후출) 이제 plans 배열을 돌며 진행 중인 과제가 끝나는 시각(endTime)과 다음 과제 시작 시각(nextStartTime)을 비교하며 스택 또는 answer 배열(과제를 끝낸 순..
짱정연
'Coding Test/Problem Solving' 카테고리의 글 목록