본문 바로가기

Programming Language/Python3.6

(99)
[python 파이썬] 어떤 값이 리스트에 있는지 확인하는 함수 어떤 값이 리스트에 있는지 확인하는 함수 구현하기 파이썬에 내장되어 있는 in 키워드 이용 # value가 some_list의 요소인지 확인 def in_list(some_list, value): i = 0 while i < len(some_list): # some_list에서 value를 찾으면 True를 리턴 if some_list[i] == value: return True i = i + 1 # 만약 some_list에서 value를 발견하지 못했으면 False를 리턴 return False # 테스트 primes = [2, 3, 5, 7, 11, 13, 17, 19, 23] print(in_list(primes, 7)) print(in_list(primes, 12))
[python 파이썬] while문을 이용한 피보나치 수열(Fibonacci Sequence) 구현하기 피보나치 수열의 첫 50개 항을 차례대로 출력하는 코드 previous = 0 # 직전 항 current = 1 # 현재 항 i = 1 while i
[python 파이썬] while문으로 구구단 출력하는 코드 중첩 while문을 이용한 구구단을 출력하는 코드i = 1while i
[python 파이썬] 문자열을 포매팅하는 다양한 방식 파이썬에서 문자열을 포매팅하는 3가지 방법 1. 고전 방식 : %기호 name = "망고" age = 12 print("제 이름은 %s이고 %d살입니다." % (name, age)) 2. 가장 대중적인 방식 : format() 메소드 name = "망고" age = 12 print("제 이름은 {}이고 {}살입니다.".format(name, age)) 3. 가장 최신 방식 : f-string name = "망고" age = 12 print(f"제 이름은 {name}이고 {age}살입니다.") 파이썬 버전 3.6부터 새롭게 나온 방식! 익숙해지면 좋을 것 같다.
[python 파이썬] 백준 <1. 입출력과 사칙연산> 1~5번 2557번, 1000번, 1001번, 10998번, 1008번 코드 [2557번] Hello Worldprint("Hello World!")  [1000번] A+BA, B = input().split()print(int(A) + int(B))a, b = map(int, input().split())print(a + b) [1001번] A-BA, B = input().split()print(int(A) - int(B))   [10998번] A*Ba, b = map(int, input().split())print(a * b) [1008번] A/Ba, b = map(int, input().split())print(a / b)    워낙 간단한 문제들이라 부연 설명 없이 깃허브 링크 첨부!https://github.com/yenyen31/BaekjoonAlgorithm GitH..
[Python 파이썬] 피보나치 수열 구현하기 (공간 최적화) def fib_optimized(n): current = 1 # current는 1로 초기화, n = 1이면 반복 필요 없음 previous = 0 # 반복문 구현 for i in range(1, n): current, previous = current + previous, current # n번재 피보나치 수를 리턴 return current # 테스트 코드 print(fib_optimized(100)) # 실행결과: 354224848179261915075
[알고리즘] [Divide and Conquer 분할 정복] 1부터 N까지 더하는 문제를 분할 정복으로 구현하기 분할정복이란 문제를 모두 부분 문제로 나눠서 해결하는 알고리즘이다. 문제들이 충분히 나누어졌다고 생각할 때까지 문제를 작게 나눈다. 분할 정복의 3단계 Divide: 주어진 문제를 반으로 나누어 두 개의 부분 문제로 나누기 Conquer: 두 부분 문제를 재귀적으로 구하기 Combine: 계산한 두 부분 문제의 답을 더하기 def consecutive_sum(start, end): # n과 n이 같은 경우 if end == start: return start # 부분 문제를 반으로 나누기 위해 문제의 정중앙을 정의 mid = (start + end) // 2 # 각 부분 문제를 재귀적으로 풀고(Conquer), 부분 문제의 답을 서로 더함(Combine) return consecutive_sum(star..
[Python 파이썬] 두 리스트 원소들 중에 두 원소를 곱한 값이 최대가 되는 경우 구하기 def max_result(left_lists, right_lists): # 왼쪽 리스트, 오른쪽 리스트 존재 max_result = left_lists[0] * right_lists[0] # 초기에는 임시로 리스트의 첫 번째 원소로 지정 # 가능한 모든 조합을 시도해보는 for 문 for left in left_lists: # 왼쪽 리스트 for right in right_lists: # 오른쪽 리스트 # 현재까지의 최댓값 값과 현재 원소들의 곱을 비교해서 더 큰 값을 최댓값 변수에 담아줌 max_result = max(max_result, left * right) # 최댓값 조합 # 찾은 최댓값을 리턴 return max_result print(max_result([1, 6, 5], [4, 2, 3]..