CS/알고리즘_문제풀이(파이썬) 183

2차원 조회

입력 첫 줄에 n, m이 주어진다. 두 번 째 줄부터 n개의 줄에 각 m개의 수가 주어진다. (3 ≤ n, m ≤ 100, 1 ≤ 수열의 구성하는 수 ≤ n X m) 출력 n줄에 각 인덱스마다 인접한 인덱스에 같은 수가 있으면 1을, 없으면 0을 출력한다. 입력의 예 1 3 5 2 3 1 1 4 1 3 2 3 4 1 2 7 3 7 출력의 예 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 0 입력의 예 2 2 5 1 2 1 3 2 1 2 1 3 2 출력의 예 2 1 1 1 1 1 1 1 1 1 1 입력의 예 3 3 7 2 2 2 3 3 3 4 1 3 1 2 1 3 1 2 4 2 4 2 3 3 출력의 예 3 1 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 입력의 예 4 3 ..

1차원 조회

문제 길이가 n인 수열이 있다. 어떤 i번 인덱스와 j번 인덱스에 대해 i와 j의 차이가 1이면 "두 인덱스가 인접하다"고 표현한다. 이 수열의 각 인덱스에 대해 인접한 인덱스에 자신과 같은 수가 있으면 1을, 없으면 0을 출력하여라. 입력 첫 줄에 수열의 길이 n이 주어진다. 두 번째 줄에 수열을 구성하는 수 n개가 주어진다. (3 ≤ n ≤ 1,000, 1 ≤ 수열을 구성하는 수 ≤ n) 출력 첫 줄에 0번 인덱스부터 n-1번 인덱스까지 각 인덱스마다 인접한 인덱스에 같은 수가 있다면 1을, 없다면 0을 출력한다. 입력의 예 1 5 2 3 1 1 4 출력의 예 1 0 0 1 1 0 입력의 예 2 5 1 2 1 3 3 출력의 예 2 0 0 0 1 1 입력의 예 3 7 2 2 2 3 3 3 4 출력의 예..

밀기 알고리즘 -- 파이썬 데크(deque)

문제 길이가 m인 수열이 n개 존재한다. n, m, q와 이 수열들의 초기 상태가 0번 수열부터 n-1번 수열까지 순서대로 주어진다. 각 질문은 세 정수 f, x, y로 주어지는데, x가 1이면 f번 수열을 오른쪽으로 y칸 밀어낸 결과를, x가 2면 f번 수열을 왼쪽으로 y칸 밀어낸 결과를 출력하여라. 단, 각 수열의 모양은 다음 그림처럼 원형이라서 n-1번 인덱스의 다음 칸은 0번이다. 각 질문에 의해 밀린 수열은 원래대로 복구하지 않는다. 즉, 같은 수열을 여러 번 밀게 된다면 이전에 밀린 상태에서 추가로 밀어서 출력한다. 입력 첫 줄에 수열의 수 n과 수열의 길이 m, 질문의 수 q가 주어진다. 두 번째 줄부터 n개의 줄에 걸쳐 각 수열을 구성하는 수 m개가 주어진다. 세 번째 줄부터 q개의 줄에 ..

역방향 밀기

문제 길이가 n인 수열이 있다. 이 수열의 모든 수가 왼쪽으로 k 칸 씩 밀린 결과를 출력하여라. 단, 이 수열의 모양은 다음 그림처럼 원형이라서 n-1번 인덱스의 다음 칸은 0번이다. 즉, 0번이 있던 값은 n-1번으로 이동한다. 입력 첫 줄에 n, k 가 주어진다. 두 번째 줄에 수열을 구성하는 수 n 개가 주어진다. (3 ≤ n, k ≤ 1,000, 1 ≤ 수열을 구성하는 수 ≤ n) 출력 첫 줄에 밀린 후의 수열을 출력한다. 입력의 예 1 5 2 2 3 1 5 4 출력의 예 1 1 5 4 2 3 입력의 예 2 5 1 1 3 5 4 2 출력의 예 2 3 5 4 2 1 입력의 예 3 7 3 3 7 4 5 2 6 1 출력의 예 3 5 2 6 1 3 7 4 입력의 예 4 11 10 1 9 8 4 5 2 ..

정방향 밀기

문제 길이가 n인 수열이 있다. 이 수열의 모든 수가 오른쪽으로 한 칸 씩 밀린 결과를 출력하여라. 단, 이 수열의 모양은 다음 그림처럼 원형이라서 n-1번 인덱스의 다음 칸은 0번이다. 즉, n-1번 값은 0번으로 이동한다. 입력 첫 줄에 수열의 길이 n이 주어진다. 두 번째 줄에 수열을 구성하는 수 n개가 주어진다. (3 ≤ n ≤ 1000, 1 ≤ 수열을 구성하는 수 ≤ n) 출력 첫 줄에 밀린 후의 수열을 출력한다. 입력의 예 1 5 2 3 1 5 4 출력의 예 1 4 2 3 1 5 입력의 예 2 5 1 3 5 4 2 출력의 예 2 2 1 3 5 4 입력의 예 3 7 3 7 4 5 2 6 1 출력의 예 3 1 3 7 4 5 2 6 입력의 예 4 11 1 9 8 4 5 2 3 7 6 11 10 출력..

단순 밀기

문제 길이가 n인 수열이 있다. 이 수열의 모든 수가 오른쪽으로 한 칸 씩 밀린 결과를 출력하여라. 각 수가 밀린 후 가장 왼쪽에는 0이 생기고 가장 오른쪽 수는 사라진다. 입력 첫 줄에 수열의 길이 n이 주어진다. 두 번째 줄에 수열을 구성하는 수 n 개가 주어진다. (3 ≤ n ≤ 1000, 1 ≤ 수열을 구성하는 수 ≤ n) 출력 첫 줄에 밀린 후의 수열을 출력한다 입력의 예 1 5 2 3 1 5 4 출력의 예 1 0 2 3 1 5 입력의 예 2 5 1 3 5 4 2 출력의 예 2 0 1 3 5 4 입력의 예 3 7 3 7 4 5 2 6 1 출력의 예 3 0 3 7 4 5 2 6 입력의 예 4 11 1 9 8 4 5 2 3 7 6 11 10 출력의 예 4 0 1 9 8 4 5 2 3 7 6 11 #..

NN단표

문제 알랩이는 구구단표처럼 NN단표를 만들었다고 한다. NN단표는 2차원 배열의 모양으로 곱셈 1단부터 N단까지의 값들을 적어놓은 형태이다. NN단표의 배열을 A라고 했을 때, 배열의 들어가는 수 A[i][j]=i*j이다.(즉, 4행 7열에는 28, 7행 5열에는 35가 들어가 있다.) 알랩이는 N단까지 나온 숫자들 중에서 K번째로 작은 수를 찾고 싶어한다. 이때, 중복되는 여러 수들을 고려한다. 즉 N*N개의 모든 수들 중에서 K번째 수를 구하는 것이다. 입력 첫째 줄에 배열의 크기 N이 주어진다. N은 100,000보다 작거나 같은 자연수이다. 둘째 줄에 K가 주어진다. K는 N*N보다 작거나 같은 자연수이다. 출력 K번째 원소를 출력한다. 예제 입력 3 7 예제 출력 6 #코드__시간복잡도 탈락 1..

숫자 개수 세기

문제 n개의 숫자가 주어지고, q개의 질문이 주어진다. 각각의 질문은 n개의 숫자 중에서 특정 숫자가 몇개나 있는지를 묻는다. q개의 질문에 모두 답하는 프로그램을 작성하시오. 입력 첫 번째 줄에 숫자의 개수 n, 그리고 질문의 개수 q가 주어진다 ( 1 ≤ n ≤ 100,000, 1 ≤ q ≤ 100,000) 두 번째 줄에 n개의 숫자가 주어진다. 세 번째 줄에 q개의 질문이 주어진다. 주어지는 q개의 질문에 해당하는 숫자 범위는 100,000,000이하이다. 출력 각 질문에 대하여 숫자의 개수를 한 줄에 하나씩 출력한다. 예제 입력 10 4 1 3 4 3 2 3 1 2 5 10 1 3 9 10 예제 출력 2 3 0 1 # 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17..

inequal(백트래킹)

문제 두 종류의 부등호 기호 ‘’가 k 개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제시된 부등호 순서열 A가 다음과 같다고 하자. A ⇒ 부등호 기호 앞뒤에 넣을 수 있는 숫자는 0부터 9까지의 정수이며 선택된 숫자는 모두 달라야 한다. 아래는 부등호 순서열 A를 만족시키는 한 예이다. 3 1 7 0 이 상황에서 부등호 기호를 제거한 뒤, 숫자를 모두 붙이면 하나의 수를 만들 수 있는데 이 수를 주어진 부등호 관계를 만족시키는 정수라고 한다. 그런데 주어진 부등호 관계를 만족하는 정수는 하나 이상 존재한다. 예를 들..

division(백트래킹)

문제 임의의 자연수는 그보다 작은 자연수들의 합으로 표현될 수 있다. 예를 들어 4의 경우, 4 = 3+1 = 2+2 = 2+1+1 = 1+1+1+1 위와 같은 방법으로 표현 될 수 있다. 이 때 , 숫자의 구성이 같으면서 그 순서만이 다른 경우는 같은 경우로 생각하는데, 예를 들어 다음 세 가지 경우는 모두 같은 경우이다. 2 + 1 + 1, 1 + 2 + 1 , 1 + 1 + 2 자연수 n을 입력 받아 이를 n보다 작은 자연수들의 합으로 나타내는 방법을 모두 출력하는 프로그램을 재귀 호출을 사용하여 작성하시오. 입력 첫 줄에 2 이상 20 이하의 자연수 n이 주어진다. 출력 첫째 줄부터 모든 방법을 한 줄에 하나씩 출력한다. 하나의 식 안에는 큰 숫자가 앞으로 오도록 하고, 전체적으로는 앞의 숫자가 ..

반응형