일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 웹개발
- BFS
- 전공자따라잡기
- JAVA_HOME
- 바인딩
- 이진트리
- 9093
- 도커
- 자바
- 연결요소
- 11724
- 그래프
- 알고리즘
- 이분그래프
- dfs
- n진법게임
- 피보나치
- 포화이진트리
- 동적계획법
- DynamicProgramming
- 백준
- 1707
- Java
- Bottom Up
- 링킹
- 순회
- 프로그래머스
- 포스트오더
- 완전이진트리
- 인오더
- Today
- Total
목록분류 전체보기 (23)
물음표 살인마
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/laZH2/btrJHdvVwJw/vIFyMsxowjIQq8FDEkzpa1/img.png)
스택이란? 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 자료구조 마지막에 넣은 것이 가장 먼저 나오기 때문에 LIFO(Last In First Out) 이라고도 한다. push: 스택에 자료를 넣는 연산 pop: 스택에서 자료를 빼는 연산 top: 스택의 가장 위에 있는 자료를 보는 연산 empty: 스택이 비어있는지 아닌지 확인하는 연산 size: 스택에 저장되어있는 자료의 개수를 알아보는 연산 Java로 스택 구현하기(백준 10828) int[] arr = new int[10000]; int cur = 0; 자료를 넣을 배열과 스택의 스택의 크기를 담을 변수를 선언해준다. void push(int x){ arr[cur] = x; cur++; } push: 배열에 입력된 자료를 저장하고 크기를 담은 변수를..
정의 - 수학과 컴퓨터 과학, 언어학 또는 관련 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것을 말한다. 효율성 중요도: 수행 시간 > 사용한 메모리 > 코드의 길이 1. 시간이 30분 걸린다면 정말로 30분 실행시켜야 하지만, 메모리가 64G 필요하다면 램을 구매하면 된다. 2. 하지만 상황에 따라 무엇이 중요한지는 다르다. 문제의 크기 10명이 접속하는 사이트를 만드는 것과 10만명이 동시 접속하는 사이트를 만드는 법은 다르다. 문제를 해결할 때도 문제의 크기에 따라 알맞은 방법을 선택하는 것이 좋다. 시간복잡도 입력의 크기 N에 대해 최악의 경우에 걸리는 시간을 O(Big O Notation)으로 표기한다. 문제를 풀기 전에 먼저 시간복잡도를 계산해보고..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zO894/btrxwZnBr5U/rT3rF4An7NZLNJeiTopc5K/img.png)
[기초지식] [SQL 옵티마이저] 사용자가 원하는 작업을 가장 효율적으로 수행할 수 있는 최적의 데이터 엑세스 경로를 선택해주는 DBMS 핵심 엔진. 쿼리를 수행하는 데 후보군이 될만한 실행계획들을 찾아낸다 데이터 딕셔너리에 미리 수집해 둔 오브젝트 통계 밑 시스템 통계정보를 이용해 각 실행계획의 예상 비용을 산정한다. 최저 비용을 나타내는 실행계획을 선택한다. Execution Plan(실행계획) 은 옵티마이저가 생성한 처리절차를 사용자가 확인할 수 있게 트리 구조로 표현한 것. 실행계획 확인을 통해 SQL이 테이블을 스캔하는지, 인덱스를 스캔하는지, 어떤 인덱스를 스캔하는지 확인할 수 있고 변경할 수 있다. 1. sql plus 이용하기 1-1. 기존 오라클에서 실행계획을 확인하려면 우선 plan_t..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bxatxQ/btrhB0IL9a6/4vDhrgTJGSEEKjpsyWBaL0/img.png)
안녕하세요 오늘은 알고리즘을 풀다보면 자연스럽게 만나게 되는 dp에 대해 알아보도록 하겠습니다. DP, Dynamic Programming, 이란 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법을 말합니다. 분할정복과 비슷하지만 분명한 차이점은 dp에서는 작은 문제들이 반복되며, 그것을 이용해 문제를 풀어나간다는 점입니다. dp를 사용할 수 있는 가정은 두가지가 있습니다. 1. 큰 문제를 작은 문제로 분할 가능해야 하며, 2. 작은 문제에서 구한 정답이 그것을 포함하는 큰 문제에서도 동일해야 합니다. 그럼 본격적으로 피보나치 수열을 들여다보겠습니다. 저는 피보나치 수열의 26번째자리에 있는 값을 구하고 싶습니다. 이는 dp[26]을 구하기 위한 극히 일부분만을 나타낸 그림임에도 불구하고 dp[2..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b15L1u/btrgV8VyCGY/XRgO3J3rQZXkO2JKk7FoCK/img.jpg)
오늘 포스팅은 자바 설치와 환경 설정에 대해 알아보겠습니다. 저는 윈도우 64비트 OS를 이용하고 있으며 자바11을 설치했습니다. 들어가기 전 JDK란 Java Development Kit로 자바 개발을 위해 필요한 여러 기능들을 묶어 제공하는 키트입니다. 1. JDK 다운로드 아래의 링크에서 원하는 버전의 파일을 OS에 맞춰 다운받습니다. https://www.oracle.com/java/technologies/downloads/#java11 저는 윈도우를 쓰고있기 때문에 위의 파일을 내려받았습니다. JDK를 내려받기위해선 오라클에 회원가입을 해야 하는데, 가입 후 비밀번호는 꼭 메모해두는 걸 추천드립니다. 항상 잊을만하면 로그인 할 일이 생기고 비밀번호 패턴도 복잡해 잊어버리기 쉽습니다. 내려받은 실..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/JgdII/btq9NYTPEgg/JFKJTGwKqKuWhv0Oe7ZvY0/img.png)
안녕하세요 오늘은 백준 1000번을 풀다 알게된 PS에서 Scanner을 쓰면 안되는 이유에 대해 글을 써봅니다. 너무 심심한 주말, 알고리즘 알못인 저는 무작정 백준에 들어가 쉬운 문제부터 풀어보기로 합니다. A+B??? 오잉? 이건 너무 쉬운 거 아닌가? 그리고 처음 자바를 배웠던 때를 떠올리며 Scanner을 사용해 아래의 코드를 작성합니다. package mathematics; import java.util.Scanner; public class Baekjoon1000 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); Syste..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bB6EEL/btq86VRt6sH/MXYsKl4eYkclCptBO0D1s0/img.png)
지금까지는 로컬에서만 개발을 하다 첫 프로젝트를 하며 처음 배포를 해봤다. 이참에 컴파일, 빌드, 배포의 개념에 대해 다시금 정리해보고자 한다. 컴파일은 내가 작성한 소스 코드를 기계어(컴퓨터 언어)로 번역해주는 것이다. 자바의 경우, 코드가 JVM에서 돌아갈 수 있게 바이트코드로 컴파일되어 실행된다. 자바 파일을 컴파일하면 CLASS파일이 생성되는 걸 볼 수 있다. * 바이트코드: 특정 하드웨어가 아닌 가상 컴퓨터에서 돌아가는 실행 프로그램을 위한 이진 표현법. 컴파일을 해 목적 파일(Object File)을 생성했으면, 이 목적 파일들을 연결해줘 실행파일로 만들어야 한다. 여기서 목적파일을 연결해 실행파일을 만드는 과정을 링크라고 한다. 링커는 목적 파일을 하나로 합치고 거기에 라이브러리를 더해 실행..