Do it! 자료구조와 함께 배우는 알고리즘 입문[자바편] 연습문제와 실습문제입니다. 재귀 알고리즘의 비재귀적 표현 static void recur(int n) { if(n > 0) { recur(n - 1); System.out.println(n); recur(n-2); } } 위 메소드의 꼬리 재귀를 제거하는 방법과 비재귀적 표현으로 나타내는 방법을 정리하려고 한다. 꼬리 재귀의 제거 메소드의 꼬리에서 재귀 호출하는 메소드 recur(n-2)는 파라미터로 n-2를 전달하여 recur 메소드를 호출한다는 뜻이다. 따라서 이 호출은 'n의 값을 n-2로 업데이트하고 메소드의 시작 지점으로 돌아간다'는 뜻이다. 아래는 위 방법을 그대로 구현한 코드이다. n의 값을 -2만큼 감소한 후 메소드의 시작 지점으로..
본 게시글은 유튜브 : 경제 TV 너무경 : 너무 쉬운 경제 윤성종 님의 유튜브 영상을 참고하였습니다. 개인적으로 정리하는 글임을 알립니다. 금융용어정리 - 주식 거래시간 주식 거래시간 전날 종가가 9,000원이었고, 오늘 종가가 10,000원이라면 08:30~08:40 : 전일 종가(9,000원)로 거래 가능 08:30~09:00 : 장 시작 전 동시호가매매시간 09:00~15:30 : 정규시장 15:20~15:30 : 장 마감 후 동시호가매매시간 15:30~16:00 : 당일 종가(10,000원)로 거래 가능 16:00~18:00 : 10분에 한번씩 당일 종가 ±10%가격(9,000~11,000원)으로 거래 가능
Do it! 자료구조와 함께 배우는 알고리즘 입문[자바편] 연습문제와 실습문제입니다. 재귀 알고리즘을 분석하는 방법은 아래의 두가지가 있다. 하향식(top down) 분석 방법 상향식(bottom up) 분석 방법 아래의 코드를 바탕으로 하향식과 상향식 분석 방법을 정리하겠다. static void recur(int n) { if(n > 0) { recur(n-1); System.out.println(n); recur(n-2); } } 위 메소드에 파라미터에 4를 넘기면 아래와 같은 결과가 나온다. 하향식 분석 파라미터에 4를 넘기면 recur 메소드는 아래 과정을 순서대로 실행한다. ① recur(3)을 실행 ② 4를 출력 ③ recur(2)를 실행 아래의 그림에서 상자는 recur 메서드의 동작을 나..
Do it! 자료구조와 함께 배우는 알고리즘 입문[자바편] 연습문제와 실습문제입니다. 재귀란 어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 재귀적(Recursive)이라고 한다. 재귀는 직접 재귀와 간접 재귀로 나뉜다. 직접 재귀 : 메소드 a가 자신(메소드 a)을 호출 간접 재귀 : 메소드 a가 메소드 b를 호출하고, 메소드 b는 메소드 a를 호출 재귀 메소드는 정지조건(재귀 앵커)을 제대로 설정하지 않으면 무한 루프와 같이 끝없이 재귀 메소드가 호출되므로 유의하여야 한다. 팩토리얼 구하기 음이 아닌 정수 n의 팩토리얼(n!)은 아래처럼 재귀적으로 정의할 수 있다. 0! = 1 n > 0 이면 n! = n * (n-1)! 위의 정의를 그대로 구현하면 아래와 같다. static ..
본 게시글은 유튜브 : 경제 TV 너무경 : 너무 쉬운 경제 윤성종 님의 유튜브 영상을 참고하였습니다. 개인적으로 정리하는 글임을 알립니다. 금융용어정리 - 공매도, 대주거래, 대차거래, 대차잔고, 대차잔액 공매도 주식을 빌려서 미리 판 후에 주식으로 되갚아야 하는 매도 공매도는 주가가 하락할 것을 예상하는 경우에 실행한다. 수익은 최대 100%까지이고 손해는 무한대로 클 수 있다. 예를 들어 ㈜코딩의 주가가 현재 10,000원이고, A씨는 ㈜코딩의 주식을 1주 갖고 있다. B씨는 A씨에게 ㈜코딩의 주식 1주를 빌리고 한 달 뒤에 갚기로 했다. B씨는 ㈜코딩의 주식을 만 원에 매도해서 현재 현금 만 원을 보유하고 있다. 이때 두 가지의 경우가 있다. ㈜코딩의 주가가 하락했을 때 한 달뒤, A씨에게 빌린 ..
본 게시글은 유튜브 : 경제 TV 너무경 : 너무 쉬운 경제 윤성종 님의 유튜브 영상을 참고하였습니다. 개인적으로 정리하는 글임을 알립니다. 금융용어정리 - 따상 따상 따상은 아래의 조건을 만족하는 경우를 칭하는 속어이다. 시가가 공모가(주식시장에 최초로 상장될 때의 주식 한 주당 가격)의 두 배가 된 경우 종가가 시가의 +30%인 경우 시가 장 시작전 동시호가매매시간이 끝남과 동시에 시가가 결정된다. 시가는 시초가라고 부르기도 한다. 주식 시장에서 주가는 최대 30% 상승 또는 하락할 수 있다. 이는 동시호가도 마찬가지이다. 하지만 한 가지 예외가 있는데, 처음 상장하는 날은 동시호가가 -10% ~ 100%까지 하락 또는 상승이 가능하다. 예를 들어 공모가 5,000원으로 상장하고 장 시작전 동시호가매..
Do it! 자료구조와 함께 배우는 알고리즘 입문[자바편] 연습문제와 실습문제입니다. 큐 큐는 스택과 마찬가지로 데이터를 일시적으로 쌓아 놓은 자료구조이다. 하지만 큐는 스택과 다르게 선입선출(FIFO, First In First Out)이다. 아래의 그림과 같이 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출 구조로 되어 있다. 큐에 데이터를 넣는 작업을 인큐라 하고, 데이터를 꺼내는 작업을 디큐라고 한다. 인큐와 디큐 인큐 위 그림에서 리어(rear)인 53 뒤에 24를 인큐 한다. 이 처리의 시간복잡도는 O(1)이고 적은 비용으로 구현할 수 있다. 디큐 위 그림에서 프론트(front)인19와 22을 디큐 한다. 디큐한 후에는 모든 요소를 앞으로 옮겨야 한다. 이 처리의 시간복잡도는 O(N)이며 ..
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..