[JAVA] 팩토리얼 , 최대공약수 구하는 알고리즘 - 재귀 기초
자료구조 & 알고리즘/알고리즘2023. 1. 30. 00:52[JAVA] 팩토리얼 , 최대공약수 구하는 알고리즘 - 재귀 기초

Do it! 자료구조와 함께 배우는 알고리즘 입문[자바편] 연습문제와 실습문제입니다.재귀란 어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 재귀적(Recursive)이라고 한다.재귀는 직접 재귀와 간접 재귀로 나뉜다.직접 재귀 : 메소드 a가  자신(메소드 a)을 호출간접 재귀 : 메소드 a가 메소드 b를 호출하고, 메소드 b는 메소드 a를 호출재귀 메소드는 정지조건(재귀 앵커)을 제대로 설정하지 않으면 무한 루프와 같이 끝없이 재귀 메소드가 호출되므로 유의하여야 한다. 팩토리얼 구하기음이 아닌 정수 n의 팩토리얼(n!)은 아래처럼 재귀적으로 정의할 수 있다.0! = 1n > 0 이면 n! = n * (n-1)!위의 정의를 그대로 구현하면 아래와 같다.static int facto..

금융용어정리 - 공매도, 대주거래, 대차거래, 대차잔고, 대차잔액
금융 & 경제2023. 1. 29. 13:39금융용어정리 - 공매도, 대주거래, 대차거래, 대차잔고, 대차잔액

본 게시글은 유튜브 : 경제 TV 너무경 : 너무 쉬운 경제 윤성종 님의 유튜브 영상을 참고하였습니다. 개인적으로 정리하는 글임을 알립니다. 금융용어정리 - 공매도, 대주거래, 대차거래, 대차잔고, 대차잔액 공매도 주식을 빌려서 미리 판 후에 주식으로 되갚아야 하는 매도 공매도는 주가가 하락할 것을 예상하는 경우에 실행한다. 수익은 최대 100%까지이고 손해는 무한대로 클 수 있다. 예를 들어 ㈜코딩의 주가가 현재 10,000원이고, A씨는 ㈜코딩의 주식을 1주 갖고 있다. B씨는 A씨에게 ㈜코딩의 주식 1주를 빌리고 한 달 뒤에 갚기로 했다. B씨는 ㈜코딩의 주식을 만 원에 매도해서 현재 현금 만 원을 보유하고 있다. 이때 두 가지의 경우가 있다. ㈜코딩의 주가가 하락했을 때 한 달뒤, A씨에게 빌린 ..

금융용어정리 - 따상
금융 & 경제2023. 1. 29. 12:58금융용어정리 - 따상

본 게시글은 유튜브 : 경제 TV 너무경 : 너무 쉬운 경제 윤성종 님의 유튜브 영상을 참고하였습니다. 개인적으로 정리하는 글임을 알립니다. 금융용어정리 - 따상 따상 따상은 아래의 조건을 만족하는 경우를 칭하는 속어이다. 시가가 공모가(주식시장에 최초로 상장될 때의 주식 한 주당 가격)의 두 배가 된 경우 종가가 시가의 +30%인 경우 시가 장 시작전 동시호가매매시간이 끝남과 동시에 시가가 결정된다. 시가는 시초가라고 부르기도 한다. 주식 시장에서 주가는 최대 30% 상승 또는 하락할 수 있다. 이는 동시호가도 마찬가지이다. 하지만 한 가지 예외가 있는데, 처음 상장하는 날은 동시호가가 -10% ~ 100%까지 하락 또는 상승이 가능하다. 예를 들어 공모가 5,000원으로 상장하고 장 시작전 동시호가매..

[JAVA] 큐(Queue) / 링 버퍼(Ring Buffer) / 데크(Deque)
자료구조 & 알고리즘/자료구조2023. 1. 29. 00:50[JAVA] 큐(Queue) / 링 버퍼(Ring Buffer) / 데크(Deque)

Do it! 자료구조와 함께 배우는 알고리즘 입문[자바편] 연습문제와 실습문제입니다. 큐 큐는 스택과 마찬가지로 데이터를 일시적으로 쌓아 놓은 자료구조이다. 하지만 큐는 스택과 다르게 선입선출(FIFO, First In First Out)이다. 아래의 그림과 같이 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출 구조로 되어 있다. 큐에 데이터를 넣는 작업을 인큐라 하고, 데이터를 꺼내는 작업을 디큐라고 한다. 인큐와 디큐 인큐 위 그림에서 리어(rear)인 53 뒤에 24를 인큐 한다. 이 처리의 시간복잡도는 O(1)이고 적은 비용으로 구현할 수 있다. 디큐 위 그림에서 프론트(front)인19와 22을 디큐 한다. 디큐한 후에는 모든 요소를 앞으로 옮겨야 한다. 이 처리의 시간복잡도는 O(N)이며 ..

[JAVA] 스택(Stack)
자료구조 & 알고리즘/자료구조2023. 1. 28. 00:22[JAVA] 스택(Stack)

Do it! 자료구조와 함께 배우는 알고리즘 입문[자바편] 연습문제와 실습문제입니다. 스택 스택은 데이터를 일시적으로 저장하기 위한 자료구조로, 가장 나중에 넣은 데이터를 가장 먼저 꺼낸다. 데이터의 입력과 출력 순서는 후입선출(LIFO, Last In First Out)이다. 스택에 데이터를 넣는 작업을 푸시라 하고, 스택에서 데이터를 꺼내는 작업을 팝이라고 한다. 이렇게 푸시와 팝을 하는 위치를 꼭대기(top)라 하고, 스택의 가장 아랫부분을 바닥(bottom)이라고 한다. int 배열을 이용한 IntStack 클래스 public class IntStack { private int max; private int ptr; private int []stk; public IntStack(int capaci..

[JAVA] 이진 검색(Binary Search)
자료구조 & 알고리즘/알고리즘2023. 1. 27. 00:41[JAVA] 이진 검색(Binary Search)

Do it! 자료구조와 함께 배우는 알고리즘 입문[자바편] 연습문제와 실습문제입니다. 이진 검색 이진 검색은 선형 검색보다 좀 더 빠르게 검색할 수 있다는 장점이 있다. 하지만 이진 검색은 데이터가 키 값으로 이미 정렬되어 있다는 전제 조건이 있어야 한다. 이진 검색은 요소가 오름차순 또는 내림차순으로 정렬된 배열에서 검색하는 알고리즘이다. 시간 복잡도 측면에서 선형 검색은 O(N)이지만 이진 검색은 O(log N)을 가지므로 이진 검색이 훨씬 효율적인 알고리즘이다. 아래와 같은 배열에 오름차순으로 정렬된 데이터에서 39를 찾는 과정을 예로 들면, 먼저 배열 중앙에 위치한 5번째 인덱스부터 검색을 시작한다. 인덱스 5의 값은 31은 39보다 작으므로 검색 대상을 뒤쪽 5개로 좁힐 수 있다. 그런 다음 검..

[JAVA] 선형 검색(Linear Search), 보초법(Sentinel Method)
자료구조 & 알고리즘/알고리즘2023. 1. 26. 01:11[JAVA] 선형 검색(Linear Search), 보초법(Sentinel Method)

Do it! 자료구조와 함께 배우는 알고리즘 입문[자바편] 연습문제와 실습문제입니다. 선형 검색(순차 검색) 선형 검색은 직선 모양으로 늘어선 배열에서 원하는 키 값을 갖는 요소를 만날 때까지 맨 앞부터 순서대로 요소를 검색하는 것을 말한다. 선형 검색에서 검색의 종료 조건은 아래의 2개와 같다. 검색할 값을 발견하지 못하고 배열의 끝을 지나간 경우 검색할 값과 같은 요소를 발견한 경우 첫 번째 조건이 성립하면 검색 실패, 두 번째 조건이 성립하면 검색 성공이다. 배열의 요솟수가 n개이면 조건 1, 2를 판단하는 횟수는 평균 n/2회이다. public class Main{ static int seqSearch(int[] arr, int key) { for(int i = 0; i < arr.length; ..

[JAVA] 날짜 계산기 알고리즘
자료구조 & 알고리즘/알고리즘2023. 1. 26. 00:22[JAVA] 날짜 계산기 알고리즘

Do it! 자료구조와 함께 배우는 알고리즘 입문[자바편] 연습문제와 실습문제입니다. 2023.01.01을 기준으로 100일 전은2022년 9월 23일(기준날 미포함)이고, 100일 후는2023년 4월 11일이다. 이러한 알고리즘을 자바로 구현하면 아래와 같다. 클래스 선언부 static class YMD { int year; int month; int day; YMD(int y, int m, int d) //생성자 { this.year = y; this.month = m; this.day = d; } int[][] arr = { {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, //평년 arr[0][] {31, 29, 31, 30, 31, 30, 31, 31, 3..

image