본문 바로가기
728x90

분류 전체보기302

[Java] 반복 함수, 재귀 함수 [Java] 반복 함수, 재귀 함수 반복 또는 재귀 함수는 DP, DFS, BFS 등의 알고리즘에서 흔히 쓰이는 함수이다. 수학적 감각이 약간 필요한 친구라고 할 수 있겠다. 자기 자신을 또 호출하는 재귀함수는 처음에 볼 때는 이해하기 어려운 측면이 있는데, 누가 호출되고, 언제 그 계산이 되는지를 생각해보면 쉽게 이해할 수 있다. 이 두 가지 함수를 이해하기 위해서는 '팩토리얼'과 '피보나치'를 구현해보면 된다. 1-(1). 팩토리얼 반복문 사용 // 반복문 활용 public static int factorial(int number) { int sum = 1; for(int i = 2; i < number; i++) { sum *= i; } return sum; 팩토리얼은 n!으로 나타내며, 1부터 n.. 2022. 6. 13.
[Java] 사용자 정의 함수 [Java] 사용자 정의 함수 객체 지향에서 개발자가 정의하는 메소드는 아주 기본 중에 기본이다. 메소드를 활용해서 데이터를 통제할 수 있기 때문이다. 그렇게 해서 사용자가 어떤 데이터를 집어 넣으면 메소드를 통해서 정보가 저장이 되고 기존에 있는 데이터를 불러와서 매치 시켜보고, 맞으면 돈을 인출해준다던지 (볼드체가 메소드를 통해 이루어지는 행위들이다.) 아무튼 가장 기본중에 기본이다. 그럼 사용자 정의 함수가 있으면, 사용자가 정의하지 않는 함수도 있다? 그렇다. 기본으로 내장되어 있는 함수가 그러하다. 앞서 봤던 substring();이라던지, 제일 처음 자바를 마주할 때 쓰는 System.out.println(); 이것들이 사용자가 정의하지 않는 기본 함수 즉, 내장함수이다. 세 가지의 활동을 통.. 2022. 6. 13.
[Java] 증감 연산자, 거듭제곱, 삼항 연산자, 파일 입출력 [Java] 증감 연산자, 거듭제곱, 삼항 연산자, 파일 입출력 1. 증감 연산자 public class Main { public static void main(String[] args) { // TODO Auto-generated method stub int a = 10; System.out.println("현재 a는 " + a + "입니다." ); a++; System.out.println("현재 a는 " + a + "입니다." ); // 출력 전에 ++ 연산 System.out.println("현재 a는 " + ++a + "입니다." ); // 출력 후에 ++ 연산 System.out.println("현재 a는 " + a++ + "입니다." ); System.out.println("현재 a는 " +.. 2022. 6. 12.
[Java] 자바 데이터 타입, 사칙연산, substring [Java] 자바 데이터 타입 어쩌다 보니 다시 자바를 공부하게 되었다. 자바를 위주로 알고리즘 공부도 진행하게 되지 않을까 싶다. Hello World는 한참 전에 찍어봤기 때문에 데이터 타입부터 리마인딩 한다는 생각으로 강의를 듣고 왔다. 동빈나님의 강의인데 아주 간결하고, 기존에 지식이 있는 사람이 듣기에 아주 좋다고 생각한다. 객체 지향 프로그래밍까지의 기억을 되살려줄 수 있는 강의라고 보면 된다. https://youtu.be/wjLwmWyItWI https://youtu.be/wjLwmWyItWI 동빈나님은 코딩테스트 책을 알아보다가 알게 되었고, 강의를 하나씩 들어보니 아주 간결하고 알아듣기 좋았다. 그래서 이번 자바 리마인딩도 동빈나님의 자바 강의가 있어 들어보았다. 강의 포스팅은 강의에서.. 2022. 6. 12.
[자료구조] Union-find 자료구조 python [자료구조] Union-find 자료구조 python 살펴볼 주요 개념: Union find란? Union find 구현(python) 1. Union find란? 서로 중복되지 않는 부분 집합들로 나눠진 원소들에 대한 정보를 저장하고 조작하는 자료 구조. 다수의 노드들 중에 연결된 노드를 찾거나 노드들을 합칠 때 사용하는 알고리즘이다. union find는 서로소 집합(disjoint set)을 찾아내는 것에 활용된다. union find와 비슷한 것은 python에서는 set()이 있다. set은 membership 연산(어떤 원소가 집합에 속하는 지를 T/F로 알려주는)과 합집합(union), 교집합(intersection), 여집합(difference) 등의 연산을 제공한다. 하지만 파이썬의 se.. 2022. 5. 17.
[자료구조] Balanced BST(균형이진탐색트리)의 정의와 종류 [자료구조] Balanced BST(균형이진탐색트리)의 정의와 종류 살펴볼 주요 개념: Balanced BST의 정의 Balanced BST의 종류 1. Balanced BST의 정의 Balanced BST(균형이진탐색트리, 이하 BBST)는 BST(이진탐색트리)가 위의 사진처럼 데이터 추가로 인해 길이가 과도하게 길어진 편향적인 이진 탐색트리를 방지하기 위해 만들어졌다. 높이는 탐색, 삽입과 삭제 연산에 영향을 미치게 된다. 노드의 탐색 시간이 많이 걸릴 수록 삽입과 삭제연산도 이에 영향을 받아 수행시간이 오래 걸릴 수 있다. 그렇기 때문에 높이는 최소한으로 하면서 트리에 데이터를 삽입, 삭제하는 것이 필요하다. 위의 사진의 경우를 보면 왼쪽의 BST에서는 15에서 8까지 가는 것에 에지를 4번 거쳐야.. 2022. 5. 17.
728x90