목록알고리즘/프로그래머스 (183)
쌓고 쌓다
https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 모든 날짜로부터 10일을 세어보며 내가 필요한 제품을 모두 살 수 있는지 확인하면 된다. 시작 날짜 i로부터 i+10까지 탐색하며 내가 필요한 제품이랑 일치한다면 해당 물품의 필요 개수를 -1 해주며 풀어간다. 만약 시작 날짜 i로부터 i+10이 배열의 범위를 넘어갈 수 있으니 조심하자. 시작 날짜 i로부터 10일 치 제품을 모두 탐색한 후 내가 필요로한 제품의 배열 want(v)를 ..
https://school.programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 푸는 방법은 간단하다. 참가하는 사람이 총 m명이고, 미리 구할 숫자의 개수가 t개이면 총 m * t 개의 진법 변환 결과를 통해 어떤 사람의 순서가 어떻든간 결과를 구할 수 있다. 이때! 진법 변환 결과를 담은 배열 str이 있을 때 어떤 사람의 순서가 p라면 p-1번째 값부터 참가인원 m을 더해가며 이 사람이 불러야 할 숫자를 구할 수 있다. p-1번째 값을 부르면 다음 내가 불러야..
https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 모든 인덱스에 대해 아래의 과정을 적용한다. 시작 인덱스(idx)에 시작하여 하나씩 인덱스를 증가하며 총합을 구한다. 하나씩 인덱스를 증가할때 배열의 끝에 도달하면 인덱스를 0으로 초기화하여 원형 수열 형태로 만든다. 하나씩 인덱스를 증가하며 해당 인덱스의 값을 더하여 총합을 구할때 map을 사용하여 총합이 처음 만들었다면 answer을 증가하고 map에 총합을 등록한다. 인덱스를 증..
https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 스택에 항상 주가가 오름차순이 되게 시점을 넣을 것이다. 그러므로, 스택의 top에는 항상 최고가가 들어있을 것이다. 이 최고가는 하락장을 겪지않은 가격이다. 만약 현재 시점에서의 가격이 스택의 top보다 작다면? 그것은 하락장의 시작인것이다. 이때 스택을 뒤져서 손실이 난 가격들을 찾아 낼 수 있다. 이때 손실이 난 가격들은 현재 시점과 손실이난 가격의 시점의 차이를 이용하여 가격이 ..
https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 던전을 방문할 때 피로도가 감소된다. 즉, 던전의 방문 순서에 따라 추후의 방문의 선택지에 영향을 끼친다는 것이다. 순열을 구현하여 던전이 방문이 가능하다면 방문하는 방식으로 구현하면 된다. 던전의 방문 순서가 중요하기에 조합이 아닌 순열 방식으로 구현해야 한다. 전체 코드 #include #include #include #include using namespace std; void s..
https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 코드 #include #include #include #include #include using namespace std; int solution(int k, vector tangerine) { int answer = 0; map m; map::iterator it; // map에 각 귤의 크기에 따른 개수를 저장. for(int i=0; isecond++; } /* vector v(m.b..
https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 코드 #include #include #include #include using namespace std; vector solution(vector fees, vector records) { vector answer; // fess : 기본시간(분), 기본요금(원), 단위시간(분), 단위 요금(원) // records : 시각, 차량번호, 내역 map total_m; // 차량번호, 총시간(..
https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 코드 #include #include #include #include using namespace std; vector solution(string msg) { vector answer; map m; /* A, B, ..., Z 사전 등록 */ for(int i=1; i0){ // 남아 있는 msg가 없을때까지 반복. string str; str=msg[0]; // str에 msg의 0번째 ..