공부
-
[python] Codility Lesson 1-1. BinaryGap공부/알고리즘 2021. 7. 22. 23:59
def solution(N): # write your code in Python 3.6 temp = format(N, "b") answerList = [] index = 0 #for i in range(len(temp)): while index < len(temp)-1: if temp[index] == '1': len_binary = 0 for j in range(index+1, len(temp)): if temp[j] == '1': if len_binary != 0: answerList.append(len_binary) index = j break else: index = j break else: len_binary += 1 index = j + 1 else: index += 1 if len(answe..
-
회문(回文, palindrome) 알고리즘 구현 by Python공부/알고리즘 2021. 3. 8. 22:00
[문제] 회문(回文, palindrome)은 어떤 방향으로 읽어도 같은 문자열을 말한다. 예를 들면 “여보 안경 안 보여”, “다 큰 도라지라도 큰다.”, “아들딸이 다 컸다 이 딸들아”은 잘 알려진 회문이다. 이번에는 영문 소문자 문자열만 다룬다. 예를 들어 ‘abba’ ‘kayak’, ‘reviver’, ‘madam’은 모두 회문이다. 만일 그 자체로는 회문이 아니지만 한 문자를 제거하여 회문으로 만들 수 있으면 이런 문자열을 “유사회문”(quasi palindrome)이라고 부른다. 예를 들어 ‘summuus’는 5번째나 혹은 6번째 문자 ‘u’를 제거하면 회문 ‘summus’이 되므로 이것은 유사회문이다. 여러분은 제시된 문자열이 그 자체로 회문인지, 또는 “유사회문”인지, 아니면 그 외 일반 문..
-
재귀 알고리즘 구현 by Python공부/알고리즘 2021. 3. 3. 01:40
문제: 정수 4를 1, 2, 3의 조합으로 나타내는 방법은 다음과 같이 총 7가지가 있음, 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 입력으로 주어졌을 때, n을 1, 2, 3의 합으로 나타낼 수 있는 방법의 수를 구하시오. 출처: ACM-ICPC > Regionals > Asia > Korea > Asia Regional - Taejon 2001 문제를 읽자 마자, 피보나치 수열(1,1,2,3,5,8....) 처럼 각 정수 1부터 n까지 관계가 있을거같은 느낌이 강력하게 드는 문제였다. f(n)을 n일때 나타낼 수 있는 방법의 수라고하자. 패드에 숫자 1~5까지 일일이 적어보며 방법의 수를 찾고 규칙을 찾았다, 바로 f(n) = f(n-1) + f(n-2) + f(n..