알고리즘/programmers 294

[Programmers] 쿠키 구입

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/49995 코딩테스트 연습 - 쿠키 구입 과자를 바구니 단위로 파는 가게가 있습니다. 이 가게는 1번부터 N번까지 차례로 번호가 붙은 바구니 N개가 일렬로 나열해 놨습니다. 철수는 두 아들에게 줄 과자를 사려합니다. 첫째 아들에게는 programmers.co.kr 이분 탐색과 DP를 이용하는 문제였습니다. 알고리즘은 아래와 같습니다. 1. 우선 전처리를 통해 구간합을 미리 다 구해줍니다. ex) cache[i][j] = [i, j] 구간의 합 2. [l ~ m] 구간합과 동일한 [m + 1 ~ r] 구간 합을 구해주기 위해 아래와 같이 이분 탐색을 진행해줍니다. 2.1 left를 m + 1, ri..

[Programmers] 지형 편집

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/12984 코딩테스트 연습 - 지형 편집 XX 게임에서는 지형 편집 기능을 이용하여 플레이어가 직접 게임 속 지형을 수정할 수 있습니다. 이 게임에서는 1 x 1 x 1 크기의 정육면체 블록을 쌓아 게임 속 지형을 표현합니다. 이때, 블록이 programmers.co.kr 이분 탐색을 이용해서 푸는 문제였습니다. 이차원 벡터를 매개변수로 넘길 때 참조형으로 넘기는 경우가 훨씬 빠르니 참조형으로 전달해야 합니다. 알고리즘은 아래와 같습니다. 1. 주어진 벡터에서 최소 층과 최대 층을 구한 뒤 이를 기준으로 이분 탐색을 진행합니다. 2. mid와 mid + 1 층을 기준으로 비용을 구한 뒤 더 작은 ..

[Programmers] 스티커 모으기(2)

기본적인 점화식은 아래와 같습니다. i 번째 스티커까지의 최대 합 = max(i - 1번째 스티커까지의 최대합, i - 2번째 스티커까지의 최대합 + i번째 스티커) 해당 점화식을 첫 번째 스티커와 두 번째 스티커를 기준으로 구해준 뒤 둘 중 더 큰 값을 반환해줍니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers] 숫자 게임

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/12987 코딩테스트 연습 - 숫자 게임 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 programmers.co.kr A팀이 먼저 선수들의 순서를 공개한 것이 중요하지 않다는 것을 캐치하는 것이 이 문제의 포인트였습니다. . 알고리즘은 아래와 같습니다. 1. A팀의 최대 숫자보다 B팀의 최대 숫자가 크면 B팀은 무조건 승점 1점을 획득합니다. 2. A팀의 가장 큰 숫자부터 가장 작은 숫자까지 순회하며 1번의 논리를 통해 승점 획득 여부를 파악합니..

[Programmers] 기지국 설치

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/12979 코딩테스트 연습 - 기지국 설치 N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5 programmers.co.kr 알고리즘은 아래와 같습니다. 1. 전파가 터지지 않는 범위들을 구합니다. 2. 전파가 터지지 않는 범위 내 설치할 기지국 갯수는 (전파 터지지 않는 범위 / 기지국 범위)의 올림입니다. 2.1 기지국이 소수점 개수로 있을 수 없기 때문입니다. 3. 2번 공식을 통해 1번에서 구한 범위들 내 기지국 개수를 모두 파악한 뒤 반환..

[Programmers] 점프와 순간 이동

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/12980 코딩테스트 연습 - 점프와 순간 이동 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈 programmers.co.kr 역으로 n에서 시작점인 0으로 간다고 생각해봅니다. 1. n이 홀수이면 한칸 앞으로 갑니다. 2. n이 짝수이면 순간이동을 합니다. 3. 1번 2번 과정을 시작점에 도달할 때까지 반복합니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers] 영어 끝말잇기

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co.kr 간단한 문자열 처리 문제였습니다. 알고리즘은 아래와 같습니다. 1...

[Programmers] 배달

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 다익스트라 알고리즘을 이용하면 쉽게 풀 수 있는 문제였습니다. 주의할 점은, 두 마을 간 길이 두 개 이상 주어질 수 있으므로 배달 시간이 짧은 시간을 저장해줘야 정답을 구할 수 있습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~