목록Coding test(Python3)/스터디 (47)
NIRVANA

1. 문제 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항3 ≤ n ≤ 1,000,000 2. 문제 풀이 방법 10 - 1 = 912 - 1 = 117 - 1 = 6 과 같이 n을 1로 나누었을 때 나오는 몫을 소인수 분해하면, n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 찾을 수 있는 것을 확인할 수 있다. 1) n-1 값이 소수인지 확인한다.2) 만약 n-1이 소수라면 바로 값을 return한다.3) n-1이 소수가 아니라면 n-1의 약수를 구한 뒤 가장 작은 약수를 반환한다. def solution(n): a..

1. 문제 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건x는 -10000000 이상, 10000000 이하인 정수입니다.n은 1000 이하인 자연수입니다. 2. 문제 풀이 1) 1부터 n+1까지 for문을 돌린다.2) i에 x를 곱하고, 해당 값을 answer에 추가한다.def solution(x, n): answer = [] for i in range(1, n+1): answer.append(i*x) return answer

1. 문제 2. 문제 풀이 문제 풀이 접근법1 다음과 같은 과정을 통해서 첫번째 원소 삽입 후 배열 B는 [ 2 2 3 1 ]의 상태가 되고, return 되는 원소는 4가 되게 된다. 이때, 자료구조가 스택일 경우에는 pop한 수를 다시 append하게 되므로 아무런 변화가 없게 된다. (큐는 FIFO이기 때문에 앞에 있는 원소가 먼저 빠지게 되므로) 따라서 해당 자료구조에서는 스택을 무시하고 큐가 여러개 이어져 있는 것으로 생각할 수 있다. 1) 큐인 자료구조만 찾아서 하나의 큐로 만든다. (덱 형태)2) 큐의 맨 앞에 C의 i번째 원소를 추가하고, 맨 뒤의 원소를 pop한 뒤 리스트에 저장한다.3) 리스트에 저장된 원소를 모두 출력한다. import sysfrom collections ..
1. 문제1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선이 있다. 각 풍선 안에는 종이가 하나 들어있고, 종이에는 -N보다 크거나 같고, N보다 작거나 같은 정수가 하나 적혀있다. 이 풍선들을 다음과 같은 규칙으로 터뜨린다.우선, 제일 처음에는 1번 풍선을 터뜨린다. 다음에는 풍선 안에 있는 종이를 꺼내어 그 종이에 적혀있는 값만큼 이동하여 다음 풍선을 터뜨린다. 양수가 적혀 있을 경우에는 오른쪽으로, 음수가 적혀 있을 때는 왼쪽으로 이동한다. 이동할 때에는 이미 터진 풍선은 빼고 이동한다.예를 들어 다섯 개의 풍선 안에 차례로 3, 2, 1, ..

1. 문제 정수를 저장하는 덱을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 여덟 가지이다.1 X: 정수 X를 덱의 앞에 넣는다. (1 ≤ X ≤ 100,000)2 X: 정수 X를 덱의 뒤에 넣는다. (1 ≤ X ≤ 100,000)3: 덱에 정수가 있다면 맨 앞의 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다.4: 덱에 정수가 있다면 맨 뒤의 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다.5: 덱에 들어있는 정수의 개수를 출력한다.6: 덱이 비어있으면 1, 아니면 0을 출력한다.7: 덱에 정수가 있다면 맨 앞의 정수를 출력한다. 없다면 -1을 대신 출력한다.8: 덱에 정수가 있다면 맨 뒤의 정수를 출력한다. 없다면 -1을 대신 출력한다.입력첫째 줄에 명령의 ..

1. 문제요세푸스 문제는 다음과 같다.1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다.N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) 출력예제와 같이 요세푸스 순열을 출력한다. 2. 문제 풀이1) 1~N까지의 리스트를 덱으로 선언한다.2) -..