목록CS (35)
CS log
📍문제https://www.acmicpc.net/problem/1182N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오. 📍입력첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. 📍출력첫째 줄에 합이 S가 되는 부분수열의 개수를 출력한다. 📍풀이 방법combination 함수를 쓴다 -! 📍코드import sysfrom itertools import combinationsN, S = map(int,sys.stdin.re..
📍문제https://www.acmicpc.net/problem/4779 칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다. 전체 집합이 유한이라고 가정하고, 다음과 같은 과정을 통해서 칸토어 집합의 근사를 만들어보자. 1. -가 3N개 있는 문자열에서 시작한다.2. 문자열을 3등분 한 뒤, 가운데 문자열을 공백으로 바꾼다. 이렇게 하면, 선(문자열) 2개가 남는다.3. 이제 각 선(문자열)을 3등분 하고, 가운데 문자열을 공백으로 바꾼다. 이 과정은 모든 선의 길이가 1일때 까지 계속 한다.예를 들어, N=3인 경우, 길이가 27인 문자열로 시작한다.--------------------------..
재귀 함수란?: 어떤 함수에서 자신을 다시 호출하여 작업을 수행하는 방식의 함수를 의미반복문을 사용하는 코드는 항상 재귀 함수를 통해 구현하는 것이 가능하며 그 반대도 가능코드가 간결하고 이해하기 쉽다. 특정 유형의 문제(트리, 그래프 탐색 등)에 매우 적합함반복적인 스택의 사용으로 인해 메모리 및 속도에서 성능 저하가 발생할 수 있음 예시 def factorial(n): if n즉, 재귀 문제를 풀 때는 항상 base case와 recursive case로 경우를 나누어 주어야 함base case : 더 이상 자기 자신을 호출하지 않고, 직접 결과를 반환하는 조건 꼬리 재귀 (taili recursion)함수 호출의 결과로 반환되는 값에 함수 인자를 직접적으로 포함시키는 방식으로 구현재귀로 구현하고 ..
📍문제https://www.acmicpc.net/problem/1018지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다.체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다.보드가 체스판처럼 칠해져 있다는 보장이 없어서, 지민이는 8×8 크기의 체스판으로 잘라낸 ..