백준 11660 | DP | 구간 합 구하기 [파이썬 python]
·
Algorithm/백준
11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) # 표의 크기, 합을 구해야 하는 횟수 A = [] # NxN 리스트 for _ in range(n): A.append(list(map(int, input().split()))) # 합 배열 D 구하기 D = [[0] * (n+1) for _ in range(n+1)] # DP 테이블 for..
배열과 리스트
·
Algorithm/알고리즘 이론
배열 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조 인덱스를 사용하려 값에 바로 접근 가능 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어려움 값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시키는 과정이 필요함 배열의 크기는 선언할 때 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 없음 구조가 간단하므로 코딩 테스트에서 많이 사용함 리스트 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조 인덱스가 없으므로 값에 접근하려면 Head 포인터부터 순서대로 접근해야 함 즉, 값에 접근하는 속도가 느림 포인터로 연결되어 있으므로 데이터를 삽입하거나 삭제하는 연산 속도가 빠름 선언할 때 크기를 별도로 지정하지 않아도 됨 즉, 리스트의 크기는 정해져 있지 않..
시간복잡도/디버깅
·
Algorithm/알고리즘 이론
시간복잡도 시간복잡도: 주어진 문제를 해결하기 위한 연산 횟수 시간 복잡도 유형 빅-오메가$( \Omega(n))$: 최선일 때(best case)의 연산 횟수 빅-세타$(\theta(n))$: 보통일 때(avarge case)의 연산 횟수 빅-오$(O(n))$: 최악일 때(worst case)의 연산 횟수 연산 횟수 계산 방법 연산 횟수 = 알고리즘 시간 복잡도 n값에 데이터의 최대 크기를 대입하여 도출 시간 복잡도 도출 기준 상수는 시간 복잡도 계산에서 제외 ex) $ 3N $ → $ N $ 가장 많이 중첩된 반복문의 수행 횟수가 시간 복잡도의 기준이 됨 ex) $ N^2 + 10N $ → $ N^2 $ 디버깅 디버깅(debugging): 프로그램에서 발생하는 문법 오류나 논리 오류를 찾아 바로잡는 ..
KT 에이블스쿨 AIVLE school 4기 AI트랙 10주차 후기 | 4차 미니프로젝트
·
KT에이블스쿨
10주차 일정 10/10 - 10/11 AI모델 해석/평가 10/12 - 10/13 미니프로젝트 4차 10/10 - 10/11 AI모델 해석/평가 다시 한기영 강사님을 만났습니다!!!!! 그동안 딥러닝으로 지쳐있다가 한기영 강사님 뵙게 되어 마음이 너무 편해졌던 소중한 이틀 동안...♡ XAI(eXplainable AI), 설명 가능한 인공지능을 위해 우리가 만든 모델을 어떻게 해석해야 하는지에 대해서 배웠다. 구분 모델 전체(Global) 개별 데이터(Local) 특정 모델 (Model-Specific) - 트리 기반 모델(DT, RF, XGB등): 변수 중요도(feature importance), tree plot - 선형 회귀, 로지스틱 회귀: 회귀계수 모든 모델 (Model-Agnostic) - ..
프로그래머스 | 연속된 부분 수열의 합 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 시간 초과^^ def solution(sequence, k): # 합 배열 s = [0] * (len(sequence)+1) for n in range(1, (len(sequence)+1)): s[n] = s[n-1] + sequence[n-1] # 구간 합 answer = [] min_len = 1000001 for i in range(len(sequence)+1): for j in range(i, len(sequence)+1): if s[j] - s[i-1] == k and j-i < min_len: if..
프로그래머스 | 두 큐 합 같게 만들기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 단순한 큐를 이용한 문제라 생각하고 접근했으나 조건들로 인해 실패했던 과정을 하나하나 코드와 함께 작성했다. 발생할 수 있는 모든 경우를 겪고 정리했으니 다들 여기서 해답을 찾으시길 바랍니다! 시행착오 1 from collections import deque def solution(queue1, queue2): queue1, queue2 = deque(queue1), deque(queue2) answer = 0 # 원소는 정수이므로 두 큐의 합이 홀수이면 어떻게 해도 각 큐의 합을 정수로 같게 만들 수 없음(..