알고리즘/programmers 279

[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 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers] 예산

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 최대한 많은 부서를 지원해야 하므로 예산 기준 오름차순으로 정렬한 뒤 순서대로 지원하는 것이 최대로 많은 부서를 지원할 수 있는 방법입니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers] 소수 만들기

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 에라토스테네스의 체를 이용하면 쉽게 풀 수 있는 문제였습니다. N=50이므로 O(N^3)이여도 제한시간 내 통과됩니다! 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

[Programmers] 사칙연산

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/1843 코딩테스트 연습 - 사칙연산 ["5", "-", "3", "+", "1", "+", "2", "-", "4"] 3 programmers.co.kr 분할 정복과 DP 알고리즘을 조합한 문제였습니다. 알고리즘은 아래와 같습니다. 1. A 구간과 B 구간 사이의 연산자가 +라면 A 구간 내 연산 결과 중 최댓값과 B 구간 내 연산 결과 중 최댓값을 더해야 최댓값을 구할 수 있습니다. 1.1 A 구간과 B 구간 사이의 연산자가 -라면 A 구간 내 연산 결과 중 최대값과 B 구간 내 연산 결과 중 최솟값을 더해야 최댓값을 구할 수 있습니다. 2. 따라서, dp를 이용해 구간 내 연산 결과 최대, ..

[Programmers] 게임 맵 최단거리

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 전형적인 BFS 문제였습니다. 알고리즘은 아래와 같습니다. 1. {0, 0}에서 시작을 하므로 큐에 {0, 0, 0}을 넣어줍니다. [좌표 Y, 좌표 X, 움직인 횟수] 2. BFS를 진행해줍니다 3. 2번 과정에서 {n - 1, m - 1}에 도착하면 움직인 횟수 + 1을 반환해주고, 도달..

[Programmers] 폰켓몬

문제 링크입니다: https://programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr N/2와 주어진 폰켓몬 종류 중 작은 값을 반환하면 되는 문제였습니다. 개발환경:Visual Studio 2017 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~