Cos Pro 1급 - 샘플 문제 6차 4번 - 카드 섞기
문제 지문 #4 1부터 n까지 숫자가 적힌 카드 뭉치를 다음 규칙에 따라 카드 뭉치를 섞었을 때, 아래에서부터 k번째에 있는 카드에 적힌 숫자를 알아내려 합니다. 카드 뭉치 가장 아래에는 1이 쓰여있으며, 위로 갈수록 숫자가 커집니다. 카드 뭉치를 섞는 규칙은 다음과 같습니다. 1. 카드 뭉치를 정확히 반으로 나눕니다. 2. 두 개로 나뉜 카드 뭉치를 교차로 섞어서 카드 뭉치 하나를 만듭니다. 이때, 항상 1이 적힌 카드가 있는 뭉치를 아래로 놓고 섞습니다. 3. 위 과정을 반복합니다. 예를 들어, 1부터 6까지 숫자가 적힌 카드 뭉치를 3번 섞는다면 과정별로 아래에서부터 적힌 숫자는 다음과 같습니다. 횟수 카드 뭉치 1 [1, 4, 2, 5, 3, 6] 2 [1, 5, 4, 3, 2, 6] 3 [1, ..
2022. 11. 17.
Cos Pro 1급 - 샘플 문제 6차 3번 - 큰 수와 작은 수의 차이 구하기
문제 지문 #3 자연수가 들어있는 배열에서 숫자 K개를 선택하려 합니다. 이때, 선택한 숫자 중 가장 큰 수와 가장 작은 수의 차이가 최소가 되도록 해야 합니다. 예를 들어 배열에 들어있는 숫자가 [9, 11, 9, 6, 4, 19]이고, K = 4 라면 숫자 4개를 [9, 11, 9, 6]로 뽑으면 (가장 큰 수 - 가장 작은 수) = (11 - 6) = 5가 됩니다. [9, 9, 6, 4]와 같이 숫자를 뽑아도 (가장 큰 수 - 가장 작은 수) = (9 - 4) = 5가 됩니다. 그러나 가장 큰 수와 가장 작은 수의 차이가 5보다 작아지도록 숫자 4개를 선택하는 방법은 없습니다. 자연수가 들어있는 배열 arr, 선택해야 하는 숫자 개수 K가 매개변수로 주어질 때, 선택한 숫자 중 가장 큰 수와 가장 ..
2022. 11. 17.
Cos Pro 1급 - 샘플 문제 5차 8번 - 최대공약수 구하기(유클리드 호제법)
문제 지문 #8 세 수 a, b, c의 공약수가 몇 개인지 구하려고 합니다. 공약수란, 동시에 모든 정수의 약수인 정수를 뜻합니다. 예를 들어, 세 수 24, 9, 15의 공약수는 1, 3이고, 따라서 양의 공약수는 2개입니다. 세 수의 공약수가 몇 개인지 구하기 위해 다음과 같이 프로그램 구조를 작성했습니다. 1. 세 수의 최대공약수를 구합니다. 2. 앞서 구한 최대공약수의 약수가 몇 개인지 구합니다. 세 수 a, b, c가 매개변수로 주어질 때, 세 수의 약수가 몇 개인지 return 하도록 solution 메서드를 작성하려 합니다. 위 구조를 참고하여 코드가 올바르게 동작할 수 있도록 빈칸에 주어진 func_a, func_b, func_c 메서드와 매개변수를 알맞게 채워주세요. #####매개변수 설..
2022. 11. 15.
Cos Pro 1급 - 샘플 문제 5차 7번 - 그래프에서 사이클 찾기(Find-Union)
문제 지문 #7 그래프의 노드 수와 노드 연결 순서가 주어질 때, 몇 번째 연결에 사이클이 생기는지 알고 싶습니다. 예를 들어, 노드가 3개이고 노드를 [[1, 2], [1, 3], [2, 3]] 순으로 연결한다면 아래 그림과 같습니다. 1번째 연결 2번째 연결 3번째 연결 따라서 3번째 연결에서 사이클이 생깁니다. 그래프의 노드 수 n, 노드 연결 순서 connections가 매개변수로 주어질 때, 몇 번째 연결에 사이클이 생기는지 return 하도록 solution 메서드를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요. #####매개변수 설명 그래프의 노드 수 n, 노드 연결 순서 connections가 solution 메서드의 매개변수로 주어집니다. 그래프의 노드 수 n은 3 이상 10 ..
2022. 11. 14.