본문 바로가기

Algorithm17

04 구현 : 왕실의 나이트 문제 행복 왕국의 왕실 정원은 체스판과 같은 8 × 8 좌표 평면이다. 왕실 정원의 특정한 한 칸에 나이트가 서있다. 나이트는 매우 충성스러운 신하로서 매일 무술을 연마한다 나이트는 말을 타고 있기 때문에 이동을 할 때는 L자 형태로만 이동할 수 있으며 정원 밖으로는 나갈 수 없다 나이트는 특정 위치에서 다음과 같은 2가지 경우로 이동할 수 있다 수평으로 두 칸 이동한 뒤에 수직으로 한 칸 이동하기 수직으로 두 칸 이동한 뒤에 수평으로 한 칸 이동하기 이처럼 8 × 8 좌표 평면상에서 나이트의 위치가 주어졌을 때 나이트가 이동할 수 있는 경우의 수를 출력하는 프로그램을 작성하라. 왕실의 정원에서 행 위치를 표현할 때는 1부터 8로 표현하며, 열 위치를 표현할 때는 a 부터 h로 표현한다 c2에 있을 때 .. 2023. 5. 14.
03 그리디 : 1이 될 때까지 어떠한 자연수 N이 1이 될때까지 두 과정중 하나를 반복적으로 수행하려고 한다. 단 두번째 연산은 N이 K로 나누어 떨어질때만 선택 할 수 있다. 1. N에서 1을 뺀다. 2. N을 K로 나눈다. 예를 들어 N이 17, K가 4라고 가정하자. 이때 1번의 결과를 한번 수행하면 N은 16이 된다 이후 에 2번의 결과를 두번 수행하면 N은 1이 된다. 결과적으로 이 경우 전체과정을 실행한 횟수는 3이 된다. 이는 N을 1로 만드는 최소 횟수이다. N과 K가 주어질 때 N이 1이 될때까지 1번 혹은 2번의 과정을 수행해야하는 최소 횟수를 구하여라 입력 조건 25 5 출력 조건 2 풀이 코드 #include using namespace std; int main() { int n, k; int result; ci.. 2023. 5. 14.
03 그리디 : 숫자 카드 게임 입력 예시 3 3 3 1 2 4 1 4 2 2 2 출력 예시 2 입력예시 2 4 7 3 1 8 3 3 3 4 출력 예시 3 #include #include using namespace std; int main() { int n, m, result; cin >> n; cin >> m; int** arr = new int*[n]; int *resultarr = new int[n]; for (int i = 0; i > arr[i][j]; } } for (int i = 0; i < n; i.. 2023. 5. 14.
03 그리디 : 큰 수의 법칙 난이도 : 1/3 풀이시간 : 30min 제한시간 : 1sec 메모리 제한 : 128MB 기출 : 2019 국가 교육기관 코딩 테스트 큰수의 법칙은 통계분야에서 다루어지는 내용이지만 동빈이는 본인만의 방식으로 사용하고 있음 동빈이의 큰 수의 법칙은 다양한 수로 이루어진 배열이 있을때 주어진수들을 M번 더하여 가장 큰 수를 만드는 법칙를 따름. 단 배열의 특정한 인덱스에 해당하는 수가 연속해서 K번을 더할 수 없는 것이 이 법칙의 특징임. 예를 들어서 2 4 5 4 6으로 이루어진 배열이 있을때, M이 8이고 K가 3이라고 가정할 경우 8개의 덧셈연산을 가장 큰값이 3회 연속 더해질 수 없기 때문에 6 + 6 + 6 + 5 + 6 + 6 + 6 + 5로 총 46값을 가지게 된다. 만약 3 4 3 4 3 이.. 2023. 5. 14.