본문 바로가기
728x90

Algorithm.20

배열 연산의 시간 복잡도 🕰️ 시간 복잡도 먼저 이해하기문제를 해결하는 데 걸리는 시간, 입력된 데이터를 함수로 표현해 데이터를 다루는데 걸리는 시간을 정량화해 나타낸 것을 시간 복잡도라고 한다. 어떤 목적을 달성하거나 결과물을 만들기 위해 거쳐야하는 과정을 알고리즘이라고 하는데, 이때 다양한 알고리즘이 나타날 수 있으며 그 중에서 가장 시간복잡도가 낮은 것을 선택해야한다.☑️ 배열에서의 시간 복잡도배열은 임의 접근이라는 방법으로 배열의 모든 위치에 있는 데이터에 단 한 번에 접근할 수 있다. 따라서 데이터에 접근하기 위한 시간 복잡도는 O(1)이다. 맨 뒤에 데이터를 추가할 경우, arr = [1, 2, 3] -> arr = [1, 2, 3, 4] 형태로 추가한다 했을 때 arr[3]에 다른 데이터 위치에 영향을 주지않고 한.. 2024. 8. 11.
코딩테스트 합격자되기 3,4,5장 3 알고리즘의 효율분석3-1 시간 복잡도란?입력값과 연산 횟수의 상관관계에 따라 성능을 측정하는 것알고리즘의 성능을 나타내느 지표,낮으면 낮을 수록 좋다.1차원 배열 검색하기값을 가장 빨리 찾는 경우는 찾고자하는 값이 배열 1번째 위치해 있을 경우값을 가장 늦게 찾는 경우는 찾고자하는 값이 없거나 배열 맨 마지막에 위치하는 경우알고리즘 수행 시간을 측정하는 방법절대 시간 츶정하는 방법, 시간 복잡도로 측정하는 방법절대 시간을 측정하는 방법말 그대로 시간을 측정하는 방식시간 복잡도를 측정하는 방법연산 횟수와 관련있음시간 복잡도를 측정한 결과는 최선, 보통, 최악으로 나눔점근적 표기법이란 ? 입력 크기를 N으로 일반화하여 연산 횟수의 추이를 나타내는 방식으로 입력 크기에 따른 연산 횟수의 추이를 활용해 시간.. 2024. 1. 21.
백준 python : 2566 최댓값 for 문으로 9개만큼 input을 받기 table = [list(map(int, input().split())) for _ in range(9)] max_num = 0 max_row, max_col = 0, 0 for row in range(9): for col in range(9): if max_num 2024. 1. 11.
백준 python : 2675 문자열 반복 ✔️ 문제 백준 2675 입력 받는 수만큼 각 인덱스 값마다 반복 출력하는 문제 🗝️ 풀이 및 정답 T = int(input()) for _ in range(T): R, S = input().split() for i in range(len(S)): print(S[i]*int(R), end = "") print() 다른 풀이 방법 T = int(input()) P = [] for _ in range(T): R, S = input().split() R = int(R) S = list(S) S = [cha*R for cha in S] P.append(S) for i in P: print(*i, sep="",end="\n") 2023. 12. 24.
백준 python : 10809 알파벳 찾기 ✔️문제 백준 10809 풀이 및 정답 for문을 이용해 A 문자열에 값이 있으면 입력받은 S 인덱스를 출력하고 없으면 -1을 출력한다. S = input() A = 'abcdefghijklmnopqrstuvwxyz' for i in A: if i in S: print(S.index(i), end =' ') else: print(-1, end=' ') find 메서드 사용하기 파이썬에서 특정 문자열의 인덱스 값을 찾을 때 find()메서드를 사용할 수 있다. 존재하지 않는 값은 찾을 문자열에 value로 전달하면 -1을 출력한다. index()메서드를 통해서도 문자열의 인덱스 값을 알 수 있지만, 존재하지 않는 값일 경우 ValueError:가 발생한다. str.. 2023. 12. 24.
백준 python : 11720 숫자의 합 ✔️문제 숫자의 합 입력받는 숫자 N개만큼의 공백 없이 쓰여있는 숫자 nums를 입력받고서 숫자들의 합을 구하는 문제 🗝️풀이 및 정답 공백없이 주어지는 숫자를 인덱스 값으로 하나씩 꺼내 더하여 계산. # 숫자 N개 주어짐 N = int(input()) # 공백없이 주어지는 숫자 nums = input() total = 0 for i in range(N): total += int(nums[i]) print(total) 2023. 12. 23.
728x90