목록Python (138)
나의 개발일지
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12945 def solution(n): 피보나치 = [0, 1, 1] if n == 0: return 0 if n == 1 or n == 2: return 1 for i in range(3, n+1): 피보나치.append(피보나치[i-2] + 피보나치[i-1]) return 피보나치[-1] % 1234567
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/120883 2차원 리스트인 db를 돌면서 값을 찾는 방법을 사용 def solution(id_pw, db): for i in db: if id_pw[0] == i[0]: if id_pw[1] == i[1]: return "login" else: return "wrong pw" return "fail" 2차원 리스트인 db를 딕셔너리로 만들어서 찾는 방법을 사용 이렇게 풀면서 get() 함수의 사용법을 얻었다. dict.get(key 값) : 일치하는 key 값이 있으면 이에 맞는 value 값을 리턴해준다. 없으면 None를 리턴 dict.get(key 값, x) : 리턴 값이 None 일 ..
sorted 원본 내용은 바꾸지 않고, 정렬된 값만 반환 리스트, 튜플, 딕셔너리, 문자열 모두 사용 가능 key를 통해 정렬 기준을 정할 수 있다. reverse = True는 내림차순, False는 오름차순(기본이 오름차순으로 생략 가능) arr2 = sorted(arr1)에서 arr1의 요소들을 정렬한 값을 arr2에 리턴 하지만 arr1은 그대로이다. sort 원본 자체가 정렬되어 변경되고, None 반환 리스트에만 사용 가능 key를 통해 정렬 기준을 정할 수 있다. reverse = True는 내림차순, False는 오름차순(기본이 오름차순으로 생략 가능) arr2 = arr1.sort()에서 arr1.sort()로 인해 arr1 자체가 정렬이 되었고, arr2에는 None를 반환했다. key..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42748 array의 요소들을 commands의 i ~ j의 범위에 맞게 정렬 후 k 번째 수를 찾는 문제 예) array = [1, 5, 2, 6, 3, 7, 4] commands[0] = [2, 5, 3] i = 2, j = 5, k = 3 2~5번째까지 추출 = [5, 2, 6, 3] 정렬 = [2, 3, 5, 6] k 번째 수 = 5 def solution(array, commands): answer = [] arr = [] for i in range(len(commands)): arr = array[commands[i][0]-1:commands[i][1]] arr.sort() ans..
나의 풀이 def solution(n): answer = [] d = 2 while d
나의 풀이 def solution(numbers, k): index = (k-1) * 2 % len(numbers) return numbers[index]
나의 코드 def solution(my_string): answer = 0 tmp = 0 for i in my_string: if i.isnumeric(): tmp = tmp * 10 + int(i) else: answer += tmp tmp = 0 answer += tmp return answer my_string = "aBc1f5jk123wq23" 일 때 for 문으로 문자열 my_string의 문자들을 loop 한다. if 조건에서 i.isnumeric()로 문자가 숫자로 이루어져 있는지 체크 isnumeric()은 숫자로 된 문자면 True, 아니면 False를 반환 (더 많은 설명이 필요하지만 간단한 설명) True 면 tmp변수에 tmp * 10 + int(i)로 연산을 해서 대입 바로 ans..
🕒 시간 복잡도 컴퓨터 프로그램의 입력값과 연산 수행 시간의 상관관계를 나타내는 척도 Big-O(빅-오) → 복잡도 함수의 점근적 상한을 표기 (최악을 고려) Big-Ω(빅-오메가) → 복잡도 함수의 점근적 하한을 표기 (최선을 고려) Big-θ(빅-세타) → 복잡도 함수의 점근적 상한과 하한을 동시에 만족 (평균을 고려) 시간 복잡도는 주로 Big-O(빅-오) 표기법을 사용한다. 🟢 Big-O 표기법 종류 O(1) 「상수 복잡도」 - 입력 값의 크기와 상관없이 시간이 일정하다. - ex) 해시 테이블의 조회 및 삽입 O(n) 「선형 복잡도」 - 입력 값의 증가에 따라 시간도 증가한다. - ex) 정렬되지 않은 리스트에서 값 탐색, 1차원 for loop O(log n) 「로그 복잡도」 - 입력 값이 매..