재귀함수 5

binary

문제 숫자를 입력 받아 이진수로 출력하는 프로그램을 작성하시오. 입력 첫 번째 줄에 숫자를 입력 받는다. 숫자의 크기는 1,000보다 작거나 같다. 출력 첫째 줄에 숫자를 이진수로 바꾸어 출력한다. 예제 입력 14 예제 출력 1110 예제 입력 31 예제 출력 11111 #코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import sys def getResult(x): global arr # x를 받아 2로 계속 나누어 이진수를 구하는 함수 # 기저조건 x가 1보다 작거나 같다. if x

mountain

문제 봉우리가 여러개인 산 모양을 출력한다. 산 모양은 그림과 같고 좌우 대칭이다. 입력 첫 번째 줄에 숫자를 입력 받는다. 숫자의 크기는 20보다 작은 자연수이다. 출력 출력 예의 형식으로 출력한다. 예제 입력 3 예제 출력 1213121 예제 입력 5 예제 출력 1213121412131215121312141213121 #코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import sys def getResult(x, getStr): if x > n: return getStr tmpStr = getStr + str(x) + getStr return getResult(x+1, tmpStr) if __name__ == "__main__": input = sys.stdin.read..

[PART2]CH.07_이진탐색

- 순차탐색 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법이다. 보통 정렬되지 않은 리스트에서 데이터를 찾아야 할 때 사용한다. #코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import sys def sequential_search(n, target, arr): for i in range(n): if arr[i] == target: return i+1 return -1 if __name__ == "__main__": input = sys.stdin.readline print('생성할 원소 개수를 입력한 다음 한 칸 띄고 찾을 문자열을 입력하세요.') input_data = input().split() n..

goodseq

문제 숫자 1, 2, 3으로만 이루어지는 수열이 있다. 임의의 길이의 인접한 두 개의 부분 수열이 동일한 것 이 있으면, 그 수열을 나쁜 수열이라고 부른다. 그렇지 않은 수열은 좋은 수열이다. 다음은 나쁜 수열의 예이다. 33 32121323 123123213 다음은 좋은 수열의 예이다. 2 32 32123 1232123 길이가 N인 좋은 수열들을 N자리의 정수로 보아 그중 가장 작은 수를 나타내는 수열을 구하는 프로그램 을 작성하라. 예를 들면, 1213121과 2123212는 모두 좋은 수열이지만 그 중에서 작은 수를 나타내는 수 열 1213121이다. 입력 입력은 숫자 N하나로 이루어진다. N은 1 이상 80 이하이다. 출력 첫 번째 줄에 1, 2, 3으로만 이루어져 있는 길이가 N인 좋은 수열들 ..

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이 주어진다. 출력 첫째 줄부터 모든 방법을 한 줄에 하나씩 출력한다. 하나의 식 안에는 큰 숫자가 앞으로 오도록 하고, 전체적으로는 앞의 숫자가 ..

반응형