본문 바로가기
728x90
반응형

전체 글148

99클럽 코테 스터디 24일차 TIL DP 예제 DP; Dynamic Programming 동적 계획법 예제피보나치 수를 구하는 함수에 DP 알고리즘 적용하기피보나치수열 알고리즘은 부분 문제의 답으로부터 본 문제의 답을 얻을 수 있는 최적 부분 구조로 이루어져 있음DP 알고리즘을 적용하기 좋은 예제 중 하나임  1. recursive 방식 함수의 호출을 이용한 재귀적 방법재귀적 구조는 엄청난 중복 호출이 발생할 수 있으므로 내부에 시스템 호출 스택을 사용하는 overhead가 발생할 수 있음 public int fib_recursive(int n) { if (n  2. iterative 방식 (memoization 개념 활용)반복문을 이용한 반복적 방법Memoization을 반복적 구조에 사용하여 DP 알고리즘을 구현하는 것이 위의 재귀적 구조에.. 2024. 6. 12.
99클럽 코테 스터디 23일차 TIL DP DP; Dynamic Programming 동적 계획법크기가 크거나 복잡한 문제를 효율적으로 풀기 위해 작거나 간단한 여러 개의 문제로 나눠서 푸는 방법그리디 알고리즘과 같이 최적화 문제를 해결하는 알고리즘입력 크기가 작은 부분 문제들을 해결한 후에 그 해들을 이용하여 보다 큰 크기의 부분 문제들을 해결하고, 최종적으로 원래 주어진 입력의 문제를 해결하는 알고리즘 설계 기법프로그램 성능의 향상을 기대할 수 있음 DP 알고리즘 구현 방식1. recursive 방식함수의 호출을 이용한 재귀적 방법재귀적 구조는 엄청난 중복 호출이 발생할 수 있으므로 내부에 시스템 호출 스택을 사용하는 overhead가 발생할 수 있음2. iterative 방식반복문을 이용한 반복적 방법Memoization을 반복적 구조에 사.. 2024. 6. 11.
99클럽 코테 스터디 22일차 TIL JAVA 데이터 타입 JAVA의 데이터 타입Primitive data type (기본형)논리형boolean (참/거짓)숫자형 - 정수형byte(1): -128 ~ 127short(2): -32,768 ~ 32,767int(4): -2^31 ~ 2^31-1long(8): -2^63 ~ 2^63-1char(2): 유니코드 문자로, 하나의 문자를 저장숫자형 - 실수형float(4)double(8)Reference data type (참조형) 클래스 (Class)Java에서 정의한 사용자 정의 타입으로, 객체를 생성하는 틀 역할을 함예: String, ArrayList, HashMap 등배열 (Array):같은 타입의 값들을 모아 놓은 자료구조예: int[], String[] 등인터페이스 (Interface)클래스가 구현해야 하는 .. 2024. 6. 10.
99클럽 코테 스터디 21일차 TIL OOP 5원칙 OOP의 5가지 설계 원칙단일 책임 원칙 (SRP; Single Responsiblity Principle)모든 클래스는 단 하나의 책임만 가져야 한다.클래스는 하나의 기능만 담당하고 책임져야 한다.개방-폐쇄 원칙(OCP; Open Closed Principle)확장에는 열려있고 수정에는 닫혀있다.기존 코드를 변경하지 않고(closed), 기능을 추가(open)할 수 있어야 한다.리스코프 치환 원칙 (LSP; Liskov Substitution Principle)상위 클래스를 하위 클래스로 대체할 수 있다.인터페이스 분리 원칙 (ISP; Interface Segregation Principle)하나의 범용 인터페이스보다 여러 개의 구체화된 인터페이스가 낫다.자신이 사용하지 않는 메서드에 의존하지 않아야 .. 2024. 6. 9.
99클럽 코테 스터디 20일차 TIL 오버로딩과 오버라이딩 오버로딩과 오버라이딩오버로딩(Overloading)같은 이름의 메서드를 여러 개 정의 후, 파라미터를 다르게 정의하는 방식파라미터 개수가 다르거나 type 이 다른 경우가 있다.오버라이딩(Overriding)부모 클래스가 가지고 있는 메서드를 자식 클래스에서 재정의하는 방식메서드 이름과 파라미터의 개수와 type이 같다. 느낀 점알고 있던 개념이지만, 코드를 직접 짜면서 오버로딩을 사용해야겠다는 생각을 못하고, 메서드 명을 다 다르게 설정한 적이 있다. 다시 한번 상기시키며 다음에 코딩할 때 잘 활용해 봐야겠다.다음에 학습할 것객체지향 프로그래밍의 5가지 설계 원칙오버로딩과 오버라이딩에 대해 알아보았다. 2024. 6. 8.
99클럽 코테 스터디 19일차 TIL BFS 그래프 탐색 기법: BFSBFS (Breadth First Search)란?시작 노드부터 인접한 노드를 먼저 완벽하게 탐색하는 그래프 탐색 방법Queue로 구현할 수 있음그래프 탐색 순서0 -> 1 -> 2 -> 3  -> 4  -> 5  -> 6시간 복잡도인접 행렬에서의 시간 복잡도: O(V²)인접 리스트에서의 시간 복잡도: O(V+E)V: 정점(노드)의 개수, E: 간선의 개수 느낀 점어떤 문제에서 BFS를 사용해야 하는지 파악하는 방법을 알아야겠다.다음에 학습할 것BFS 직접 구현해 보기BFS에 대해 알아보았다. 2024. 6. 7.
99클럽 코테 스터디 18일차 TIL DFS 그래프 탐색 기법: DFSDFS (Depth First Search)란?시작 노드부터 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 그래프 탐색 방법한 방향으로 경로를 탐색하다가 더 이상 갈 수 없으면 다른 방향으로 탐색을 진행Stack이나 재귀 함수(Recursive function)로 구현할 수 있음그래프 탐색 순서0 -> 1 -> 3 -> 4  -> 2  -> 5  -> 6시간 복잡도인접 행렬에서의 시간 복잡도: O(V²)인접 리스트에서의 시간 복잡도: O(V+E)V: 정점(노드)의 개수, E: 간선의 개수 느낀 점어떤 문제에서 DFS를 사용해야 하는지 파악하는 방법을 알아야겠다.다음에 학습할 것BFS에 대하여DFS 직접 구현해보기DFS에 대해 알아보았다. 2024. 6. 6.
99클럽 코테 스터디 17일차 TIL Deque 자료구조 Deque 자료구조와 methodDeque(Double-Ended Queue)는 큐의 구조에 양쪽에서 데이터를 삽입 삭제 할 수 있는 자료구조이다.Queue 의 선입선출 (FIFO: First In First Out) 구조와Stack 의 후입선출 (LIFO: Last In First Out) 구조를 모두 포용한다.원하는 대로 Queue와 Stack의 동작을 모두 수행할 수 있다.값 삽입addFirst(value): 맨 앞에 값을 삽입. 실패 시 Exception 발생offerFirst(value): 맨 앞에 값을 삽입. 성공시 true, 실패 시 false 반환addLast(value): 맨 뒤에 값을 삽입. 실패 시 Exception 발생offerLast(value): 맨 에 값을 삽입. 성공시 tru.. 2024. 6. 5.
728x90
반응형