본문 바로가기

전체 글161

[알고리즘] 알고리즘 Algorithm Pseudo Code 시간 단축 / 디버깅 용이 / 의사소통 용이 가급적 구체적으로 작성 자연어(일상에서 사용하는 언어)나 프로그램 언어를 조합해서 사용 Time complexity 개념 입력 값이 커짐에 따라 소요되는 연산 횟수를 표현 종류 Big-O : 최악의 시간 복잡도 Big-Ω : 최선의 시간 복잡도 Big-θ : 평균의 시간 복잡도 비교 constant [O(1)] < logarithmic [O(logn)] < linear [O(n)] < quadratic [O(n^2)] < exponential [O(c^n)] 알고리즘 2022. 9. 25.
[자료구조/알고리즘] 자료구조 자료구조 개념 자료구조란? 다양한 데이터를 하나의 틀로 묶는 구조 자료구조 종류 단순 구조 2진수, 정수/실수, 문자/문자열 선형 구조 배열, 연결 리스트(단순 연결 리스트, 이중 연결 리스트, 원형 연결 리스트) 덱, 스택, 큐 비선형 구조 트리(일반 트리, 이진트리) 그래프(방향 그래프. 무방향 그래프) 파일 구조 순차 파일, 색인 파일, 직접파일 Stack 개념 쌓는다는 뜻 LIFO(Last in First out) 특징 후입 선출 하나씩 넣고(push), 뽑기(pop) 하나의 입출력 방향 대표적 사례 브라우저의 앞으로 가기, 뒤로 가기 java stack push, pop, size, peek, clear, show 선언 Stack stack = new Stack (); Queue 개념 줄의 개념.. 2022. 9. 25.
[자료구조/알고리즘] 재귀 재귀 함수의 이해 개념 재귀(recursive) : 원래의 상태로 돌아오는 것 장단점 여러 반복문 및 변수 사용 방지, 코드 간결, 수정 용이 코드 흐름 파악 어려움, 메모리 사용량 방대, 메서드 반복으로 context switching 비용 발생 사용 조건 문제를 비슷한 구조로 더 작은 단위로 쪼갤 수 있어야 함 재귀 함수의 종료 시점 존재 재귀 함수 접근법 문제 쪼개기 : 큰 문제에서 작은 부분 문제들로 쪼개기 가장 작은 문제로 쪼개기 : 가장 마지막 문제로 재귀 함수를 탈출할 조건 문제 해결 사용 케이스 문제를 더 작은 비슷한 구조의 문제로 쪼갤 수 있는 경우 반복문의 중첩 횟수를 측정하기 어렵거나 너무 많은 경우 mutable state(변경 가능 상태)를 제거하기 위해 변수 사용을 줄이는 경우 .. 2022. 9. 20.
Session1 회고 Git, Linux, Java에 대한 기초 학습에 대한 간단한 정리를 하고 내가 알고 있는 부분과 알지 못했던 부분을 구분하고 복습하는 시간을 가지겠다. Session 1 학습 내용 Development Computer & Programming 컴퓨터의 정의 : 입력받은 데이터로 주어진 규칙에 따라 처리하여 출력하는 장치 구성 요소 Hardware : 중앙처리장치, 기억장치, 입력 장치, 출력 장치, 시스템 버스 Software : system software(OS, 드라이버), application software(프로그램) Programming : 특정 목적을 달성하기 위해 설계된 알고리즘을 코드로 구현하는 것 Program : 명령문의 집합체 Compile : 소스코드를 기계어로 변환 Build :.. 2022. 9. 19.