반응형

알고리즘 문제/프로그래머스 152

프로그래머스 동영상 재생기 [Lv. 1] (C++)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr동영상의 길이와, 현재 재생중인 시간, 동영상의 오프닝 시작 시간, 종료 시간, 그리고 10초 전으로 이동, 10초 후로 이동하는 명령어의 배열을 입력 받을 때, 명령어를 모두 처리한 이후에 보고 있는 동영상의 시간을 출력해 주세요(현재 보는 위치가 오프닝 시간이라면 자동으로 건너뛰어집니다. 또한 10초 전, 후로 이동 기능은 0초와 동영상 길이 까지만 이동 가능합니다) 풀이 방법 우선 string으로 입력 받은 시간을 int로 변화해줄 필요가 있습니다.int ttoi(string time){ int ret = 0; ret += time[4] - ..

프로그래머스 붕대 감기 [Lv. 1] (C++)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr어떤 게임에는 붕대 감기라는 기술이 있습니다. 기술을 시전하면 매 초마다 체력이 회복되며, 시전 시간을 다 채울 경우 추가로 체력이 회복됩니다. 스킬의 시전 시간, 초당 회복량, 추가 회복량, 그리고 캐릭터의 최대 체력, 몬스터의 공격을 받는 시간과 피해량을 입력 받을 때, 모든 공격이 끝난 직후 남은 체력을 반환 해주세요.  풀이 방법0초 부터, 공격이 끝나는 시간 까지 매 초 계산해 주는 방식으로 풀었습니다.현재 체력과, 연속적으로 회복한 시간, 현재 시간, attacks 배열의 index를 가르키는 변수를 만들고index가 attacks 배열의 마지막을..

2024 KAKAO WINTER INTERNSHIP 알고리즘 문제 정리 (C++)

가장 많이 받은 선물 [Lv. 1] 프로그래머스 가장 많이 받은 선물 [Lv. 1 정답률 25%] (C++)프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr사람들의 이름과 이번달에 누가 누구에게 선물을 주었는지에 대한 기록flrjtwjrjt.tistory.com 도넛과 막대 그래프 [Lv. 2] 프로그래머스 도넛과 막대 그래프 [Lv. 2, 정답률 21%] (C++)프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr도넛 모양, 막대 모양, 8자 모양의 그래프가 있고, 모든 그래프로 진입하flrjtwjrjt.t..

프로그래머스 가장 많이 받은 선물 [Lv. 1 정답률 25%] (C++)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr사람들의 이름과 이번달에 누가 누구에게 선물을 주었는지에 대한 기록을 입력으로 받습니다. A와 B 사이에서 A가 더 많은 선물을 주었다면 다음달에 B는 A에게 선물을 하나 줘야하고 A와 B 사이에 오고 간 선물의 수가 같다면 선물 지수가 낮은 사람이 높은 사람에게 선물을 줘야 합니다. (선물 지수는 이번달에 친구들에게 준 선물 - 받은 선물 입니다) 다음달에 가장 많은 선물을 받은 사람은 몇개를 받았는지 구해주세요. 풀이 방법이름을 입력 받을 때, string이 아니라 int로 받았다면 접근이 더 쉬울 것 같습니다.2차원 배열을 만들고 arr[A][B]의 형..

프로그래머스 산 모양 타일링 [Lv.3 정답률 23%] (C++)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr아랫변의 길이가 N+1인 사다리꼴이 있을 때 윗변과 변을 공유하는 n 개의 정삼각형 중 일부의 위쪽에 같은 크기의 정삼각형을 붙일 때, 아래 타일들로 빈 곳이 없도록 채울 수 있는 경우의 수를 구해주세요 풀이 방법tops 배열이 모두 0일 때의 경우의 수를 먼저 구해 보겠습니다.N이 0일 때의 경우의 수는 1,N이 1일 때의 경우의 수는 3,N이 2일 때의 경우의 수는 8N이 3일 때의 경우의 수는 21 입니다.즉 점화식을 만들어 본다면 아래와 같겠습니다.dp[i] = dp[i-1] * 3 - dp[i-2] % 10007; 이 때, 주의할 점은 - dp[i ..

프로그래머스 도넛과 막대 그래프 [Lv. 2, 정답률 21%] (C++)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr도넛 모양, 막대 모양, 8자 모양의 그래프가 있고, 모든 그래프로 진입하는 임의의 노드가 있습니다. 해당 문제에서는 임의의 노드의 번호와 도넛 모양 그래프의 수, 막대 모양 그래프의 수, 8자 모양 그래프의 수를 반환해야 합니다. 풀이 방법우선 새롭게 추가된 임의의 노드가 뭔지 찾아야 합니다.임의의 노드의 특징을 생각해보면 찾는것은 쉽습니다. 그 특징은 진입 차수가 없고 진출 차수만 있다는 겁니다.또한 그래프의 수는 항상 2개 이상이기 때문에 진출 차수 - 진입 차수가 2 이상이라면 새롭게 추가된 노드라고 추측해 볼 수 있겠습니다.  vector> in(s..

프로그래머스 n + 1 게임 [Lv. 3] (C++)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1 ~ N 사이의 수가 적힌 카드가 하나씩 있는 카드 뭉치와 coin을 이용하여 게임을 합니다.라운드 시작 전에 N/3 개의 뽑아 모두 가진 채로 시작합니다.각 라운드가 시작되면 카드 2장을 뽑으며 코인을 이용하여 카드를 구매 할 수 있습니다.다음 라운드로 가기 위해서는 2장의 카드의 합이 N + 1인 카드 두 장을 내야만 합니다.코인의 개수와 카드의 배열을 입력받을 때, 도달할 수 있는 최고 라운드는 어디인지 찾아주세요!  풀이 방법이 문제를 풀기 위해서는 이 게임을 하는 플레이어의 입장에서 생각하면 안됩니다.플레이어는 앞으로 나올 카드를 알 수 없으며, ..

프로그래머스 주사위 고르기 [Lv. 3] (C++)

프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krA와 B가 N개의 주사위를 가지고 승부를 합니다. 각 사람은 N/2개의 주사위를 챙길 수 있고 주사위를 동시에 던져서 합이 가장 큰 사람이 이기는 게임입니다. 이때, A가 먼저 주사위를 선택할 수 있다면 어떤 주사위들을 선택해야 승률이 가장 좋을까? 풀이방법A가 이기기 위해선 모든 주사위 조합을 찾고 조합별로 승부를 기록하여 가장 많이 승리한 조합을 가져와야 합니다.주사위 N개가 있을 때, 2/N개를 가져올 수 있습니다. (N이 10이라면 5개를 가져올 수 있습니다.)주사위 조합 예시) [0, 1, 2, 3, 4]. [0, 1, 2, 3, 5], [0, 1,..

프로그래머스 노선별 평균 역 사이 거리 조회하기 [Lv. 2] (MySQL)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr SUBWAY_DISTANCE 테이블에서 ROUTE와 총 누계 거리, 평균 누계 거리를 조회해주세요 SELECT ROUTE, CONCAT(ROUND(SUM(D_BETWEEN_DIST), 1), 'km') AS TOTAL_DISTANCE, CONCAT(ROUND(AVG(D_BETWEEN_DIST), 2), 'km') AS AVERAGE_DISTANCEFROM SUBWAY_DISTANCEGROUP BY ROUTEORDER BY ROUND(SUM(D_BETWEEN_DIST), 1) DESC SUM, AVG로..

프로그래머스 유사 칸토어 비트열 [Lv. 2] (C++)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr유사 칸토어 비트열의 l번째 부터 r번째 까지 1의 개수를 찾아주세요(0번째 유사 칸토어 비트열은 1이며 1번째 부터 ~ n번째 까지는 n-1번째 유사 칸토열에서의 1을 11011로 치환하고 0을 00000으로 치환하여 만듭니다.) 풀이 방법#include #include #include using namespace std;string GetCantorianBit(string str, string zero, int cnt){ while (cnt--) { str = str + str + zer..

반응형