본문 바로가기

inflearn7

Part1: C# 기초 프로그래밍 입문. 섹션0.개론과 섹션1. 데이터 갖고 놀기 [RENEWAL] 환경 설정 exe 파일 실행방법 [RENEWAL] 프로그래밍 OT CPU : 두뇌 담당 (연산 담당하는 컴퓨터 핵심 부품) 주기억장치 : 기억 담당 (하지만 전원 차단시 메모리 휘발됨) 하드디스크 or SSD : 보조기억장치 (영구적 기억가능) GPU : CPU를 도와 연산을 같이 도와줌 (CPU는 고급인력이라 부가적인 계산은 GPU가 해줌. 간단한 연산을 많이 해줌) [RENEWAL] 데이터 형식 데이터 형식은 크게 4가지로 구분. - int : 정수형 데이터 - float : 실수형 데이터 - string : 문자열 데이터 - bool : 참 또는 거짓 [RENEWAL] 변수 1. 데이터 할당(변수 선언) 2. 데이터 read (get) 3. 데이터 write(set) 변수에 값을 .. 2023. 10. 4.
섹션2. 정렬(Sorting). 버블정렬(Bubble Sort) º 다른 정렬 알고리즘에 비해 정렬 시간은 오래 걸리지만 로직이 단순하다 º 버블정렬이란? -> 데이터의 인접요소끼리 비교하고, swap연산을 수행하며 정렬하는 방식 º 핵심 이론 -> 두 인접한 데이터의 크기를 비교해 정렬하는 방식입니다. 시간 복잡도는 o(n^2) º 수행방식 -> 인접한 두개의 값을 비교하고 큰 값을 오른쪽, 작은 값을 왼쪽으로 바꿔줌 -> 두번째 루프에선 정렬된 영역을 제외한 나머지 영역을 정렬해준다 º 시간복잡도(O(n^2) -> 루프 한번을 도는데 모든 데이터를 거쳐서 접근해서 끝까지 가야함. 또한 루프를 도는 횟수만큼 정렬이 됨. -> 루프 한번을 도는데 n의 시간복잡도를 가짐 º 즉, n개의 데이터를 정렬시키려면 n번의 루프가 필요함 -> O(n^2) º 만.. 2023. 10. 1.
섹션1. 자료구조(Data Structure). 스택과 큐 º 삽입과 삭제연산이 후입선출(나중에 들어온 데이터가 먼저 나가는 구조)로 이뤄지는 자료 구조 º top위치에서만 데이터 삽입, 삭제가 가능하다 º 위치 용어 -> top : 삽입과 삭제가 일어나는 위치 º 연산 용어 -> push : top위치에 새로운 데이터를 삽입하는 연산 -> pop : top위치에현재 있는 데이터를 삭제하고 확인하는 연산 -> top : top 위치에 현재 있는 데이터를 단순 확인하는 연산 º 스택은 깊이 우선 탐색(DFS), 백트래킹 종류의 코딩테스트에 효과적, 후입선출은 재귀 함수 알고리즘 원리와 일맥상통 Q1. Stack과 재귀함수가 왜 LastInFirstOut로 같을까? -> Stack은 데이터 삽입과 삭제가 top에서만 일어남 Q2. 재귀함수는 왜 LIFO.. 2023. 10. 1.
섹션1. 자료구조(Data Structure). [투 포인터 실전 문제] 좋은 수 구하기(백준 1253) 1. 예제 출력에서 나온 8이 어떻게 나온건지 분석해보기 -> 1,2 는 표현이 안됨. -> 3은 1과 2의 합 -> 4는 1과 3의 합 -> 5,6,7,8,9,10 모두 다른 두 수의 합으로 표현이 가능함. -> 그러므로 총 8개.(3,4,5,6,7,8,9,10) --> 하지만 예제입력은 정렬되어있고 양의 정수이지만, 입력할때는 정렬되지 않을 수도 있고, 음의 정수가 나올 수 있음. 2. 문제 분석하기 그럼 질문! -> 이 문제를 보고, 어떻게 '투 포인터 정렬'이란걸 알지? A. 사실 여러가지 종류의 문제를 풀어봐야 한다. 하지만 공부를 계속 하다보면 코딩테스트에 나오는 타입은 대개 정해져있다. 이런 문제는 이런 알고리즘은 쓰는구나 라고 정해지는 순간이 오게 된다. 예제 입력을 봤을 때, 일렬로 데이.. 2023. 9. 30.
섹션1. 자료구조(Data Structure). 구간 합 º 합 배열을 이용하여 시간복잡도를 더 줄이기 위해 사용하는 특수한 목적의 알고리즘 예시1) 배열 인덱스 4부터 10까지의 합 (S[4] = A[0]~A[4] ) º S[i] = S[i-1] + A[i] ( S[i-1] = S[0] + S[1]+ ... + S[i-1] ) 예시) º S[j] - s[i-1] 예시) Q.왜 S[j] - S[i-1] 공식을 사용하는걸까? A. 1. A배열의 인덱스 2부터 5까지의 합을 구하려고 한다. 공식대로 하면 S[5] - S[1]을 해준다. 왜? 2. S[5]는 A[0]부터 A[5]까지의 합이 담겨있다. 3. S[1]은 A[0[부터 A[1]까지의 합이 담겨있다. 4. S[5]에서 S[1]을 뺴주게 되면 보라색으로 동그라미 .. 2023. 9. 30.
섹션1. 자료구조(Data Structure). 배열과 리스트 그리고 *벡터 º 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조 º 인덱스를 통해 참조하며, 선언한 자료형의 값만 저장 º 새로운 값을 추가하거나 특정 인덱스 값을 삭제하려면 해당 인덱스 주변에 있는 값을 이동시켜야 하기에 어려움이 있다. º 배열의 크기는 한번 선언하면 크기를 늘리거나 줄일 수 없다 º 구조가 간단해 코딩테스트에 많이 사용된다. º 값과 포인터를 묶은 노드라는 것을 포인터로 연결한 자료구조 (노드는 값과 포인트를 갖는 기초 단위) º 인덱스가 없어 값에 접근하려면 head 포인트부터 순서대로 접근해야한다 (접근 속도가 느리다) º 포인터로 연결되어 있어 데이터 삽입, 삭제가 빠르다 º 선언할때 크기를 별도로 지정하지 않아도 된다. º 즉, 리스트의 크기가 정해져 있지 않아 크기.. 2023. 9. 28.