Computer Science 387

[4.23] 배열이란?

소수 나열하기 prime number를 모두 나열하는 알고리즘 def prime(n): prime = [] for i in range(1, n+1): for j in range(1, i): if i % j != 0: #으음.. #n 이하의 수 #n, n-1, n-2, ... , 1까지 소수인지를 판별 # a = n if n % a == 0 아아아아 모르겠어.. prime.append(n) n -= 1 for i in range(1, n+1): if i % n == n진수 변환 def card_conv(x:int, r:int) -> str: d = '' dchar = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' n = len(str(x)) print(f'{r:2} : {x:{n}d..

[4.21] 02-1 배열하는 알고리즘 (2)

배열 원소를 역순으로 정렬하기 교환 횟수는 원소 수 // 2 def arr(a): n = len(a) for i in range(0, n // 2): a[i], a[-i-1] = a[-i-1], a[i] return a a = [3, 5, 4, 2, 6] print(arr(a)) 예제 코드 from typing import Any, MutableSequence def reverse_array(a:MutableSequence) -> None: n = len(a) for i in range(n//2): a[i], a[n-i-1] = a[n-i-1], a[i] if __name__ == '__main__': print('배열 원소를 역순으로 정렬합니다.') nx = int(input('원소 수를 입력하세요.'..

[4.20] 02-2 배열이란? -(1)

2장 기본 자료구조와 배열 02-2 배열이란? 배열 원소의 최댓값 구하기 a = [1, 2, 3] 일 때 최댓값 구하기 a = [1, 2, 3, 4]일 때 최댓값 구하기 a = [1, 2, 3, 4] max = a[0] for i in range(1, len(a)): if a[i] > max: max = a[i] print(max) 배열 원소의 최댓값을 구하는 함수 구현하기 from typing import Any, Sequence def max_of(a: Sequence) -> Any: maximum = a[0] for i in range(1, len(a)): if a[i] > maximum: maximum = a[i] return maximum if __name__ == '__main__': prin..

[4.19] 02-1 자료구조와 배열(1)

2장 기본 자료구조와 배열 02-1 자료구조와 배열 배열 개념 알아보기 - 배열 array : 하나의 값을 저장하는 변수가 아니라 묶음 단위로 값을 저장하는 자료구조 - 배열에 객체가 저장됨(원소 element) -> index를 부여함 리스트와 튜플 알아보기 - 파이썬에서는 배열을 리스트list와 튜플tuple로 구현함. = data container [1] 리스트 - 원소를 변경할 수 있는 mutable list형 객체 #리스트 생성 list01 = [] list1 = list() #정수 범위 리스트 생성 list02 = list(range(7)) list03 = list(range(1, 5)) #원솟값 정하지 않는 - None 리스트 list04 = [None] * 5 [2] 튜플 - 원소에 순서를..

[4.18] 01-2 반복되는 알고리즘 (마무리)

직사각형 넓이로 변의 길이 구하기 - 으음.. - 1 * 2를 출력했으면, 2 * 1은 출력 ㄴㄴ인데.. n = int(input('넓이는 : ')) for i in range(1, n+1): if n % i == 0: print(str(i), '*', str(n // i)) n = int(input('넓이는 : ')) done = set() for i in range(1, n+1): if n % i == 0 and n // i not in done: done.add(i) print(str(i), '*', str(n // i)) 예제 코드 - ( i 나누어떨어지지 않을 때 첨으로 돌아감) area = int(input('..

[4.18] 01-2 반복하는 알고리즘

1장 알고리즘 기초 01-2 반복하는 알고리즘 1부터 n까지의 정수의 합 구하기 방법 1 def sum(n): sum = 0 for i in range(1, n+1): sum += i return sum print(sum(5)) 방법 2 def sum(n): sum = 0 i = 1 while i b일 때는? def sum(a, b): sum = 0 if a > b: a1 = b b1 = a for i in range(a1, b1+1): sum += i return sum print(sum(5, 3)) **예제 - 두 값 교환하기** - 튜플을 생성해서 교환한다고 한다. (cf) 02-1 튜플) a, b = b, a 반복 과정에서 조건 판단하기 1 입력 : 정수 a, b 출력 : 'a부터 b까지 정수의 ..

[4.18] <Do it! 자료구조와 함께 배우는 알고리즘 입문 - 파이썬>

1장. 알고리즘 기초 01-1 알고리즘이란? 순차 구조 sequential structure 선택 구조 select structure - 조건식(if ~:)에 따라 실행 흐름 변경됨 형 변환 - type conversion : 문자열형을 정수형으로 변환 int(input()) 최댓값 구하기 print('정수 세 개를 입력하세요') a = int(input('첫번째 정수는 :')) b = int(input('두번째 정수는 :')) c = int(input('세번째 정수는 :')) if a >= b and a >= c : print('최댓값은 {0}입니다.'.format(a)) elif b >= a and b >= c: print('최댓값은 {0}입니다.'.format(b)) else: print('최댓값은..

[4.17] 문제 18. 최대 수익 알고리즘

어려움 나중에 복습해야겠다 문제 18. 최대 수익 알고리즘 입력 : 리스트 출력 : max - min 알고리즘 1 def max_profit(prices): n = len(prices) max_profit = 0 for i in range(0, n-1): for j in range(i+1, n): profit = prices[j] - prices[i] if profit > max_profit: max_profit = profit return max_profit stock = [1, 2, 3] print(max_profit(stock)) 알고리즘 2 파는 날을 중심으로 생각함. 오.. def max_profit(prices): n = len(prices) max_profit = 0 min_price = p..

[4.17] 응용 문제 1. 미로 찾기 알고리즘

모두의 알고리즘 with 파이썬 다섯째 마당 응용 문제 문제 16. 미로 찾기 알고리즘 1. 그래프로 모델링 그림 생략.. 2. 딕셔너리 maze = { "a" : ["e"], "e" : ["a", "i"], "i" : ["e", "m"], "m" : ["i", "n"], "n" : ["j", "m"], "j" : ["n", "f", "k"], "f" : ["b", "g", "j"], "b" : ["f", "c"], "c" : ["b", "d"], "d" : ["c"], "g" : ["f", "h"], "h" : ["g", "l"], "l" : ["h", "p"], "p" : ["l"], "k" : ["j", "o"], "o" : ["k"] } 3. 출구 탐색 알고리즘 입력 : maze, 출발점 star..