일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |
- 투포인터알고리즘
- Array.asList
- List.of
- 코딩테스트
- MySQL
- 백준
- 자바
- 코드스테이츠
- 재귀와반복문
- 11659
- java
- OOP
- 클라우드에서 도커 실행하기
- 알고리즘
- GCP
- 백준 11659
- 싱글톤패턴
- 구간합구하기
- 버블정렬
- 코드스테이츠 백엔드
- 재귀함수
- Spring MVC 구성요소
- Spring Web MVC
- 인텔리제이
- 스택
- Spring MVC 동작원리
- 프로그래머스
- String.valueOf()
- vm인스턴스생성
- 성능테스트툴
- Today
- Total
목록글 전체 보기 (242)
순간을 기록으로
문제 유형 DP(다이나믹 프로그래밍)이고 DP 알고리즘의 핵심 중 하나인 메모이제이션 알고리즘을 이용해서 풀어야 한다. 메모이제이션 알고리즘은 중복되는 결과를 저장함으로써 알고리즘의 실행 속도를 향상시킬 수 있다. 재귀를 이용해서 풀 수도 있지만 재귀의 경우 숫자가 커지면 중복되는 메소드가 많아져서 실행 속도가 느려진다. fibo(2)를 구할 때 fibo(1)을 한 번만 구해도 되지만 fibo(6)을 구하려면 fibo(1)을 8번 호출해야한다. 이미 구한 값을 또 계산할 필요가 있을까? 따라서 메모이제이션 방법을 추천한다. 풀이법 1.재귀적으로 푼다. 2. for문과 배열을 이용해 메모이제이션 알고리즘을 사용한다. 코드1: 재귀 public class Main { public int fibo(int N)..
문제 유형 LRU문제. 주의할 점 구현력을 기르는 문제. 코드 import java.util.Scanner; /* * size만큼의 배열을 선언합니다. * 작업의 갯수만큼 반복합니다. * 만약 캐시미스라면(=배열에 들어갈 값과 같은 값이 없다면) * i = size - 1부터 1까지 하나씩 줄면서 * cache[i] = cache[i-1] * cache[0]에 현재 작업 할당 * 만약 캐시히트라면(=배열에 들어갈 값과 같은 값이 있다면) * 히트가 난 지금의 인데스부터 i가 1까지 하나씩 줄면서 반복 * cache[i] = cache[i-1] * cache[0] 히트난 값을 할당 * */ public class Main { public int[] solution(int size, int numOfJobs..
유형 후위식 연산은 대표적인 스택 문제이니 꼭 한번 풀어보자. 풀이 /* * Integer를 담을 스택을 선언 * 문자열을 문자 하나하나씩 접근한다. * 만약 문자가 숫자형 문자이면 * 스택에 넣는다. * 만약 문자가 연산자라면 * 스택에서 상단 숫자 2개를 꺼낸다. * 2개의 숫자를 연산자로 계산한다. * 계산한 결과를 스택에 다시 넣는다. * * 마지막 스택에 남아있는 숫자를 출력한다. * */ 코드 import java.util.Scanner; import java.util.Stack; /* * Integer를 담을 스택을 선언 * 문자열을 문자 하나하나씩 접근한다. * 만약 문자가 숫자형 문자이면 * 스택에 넣는다. * 만약 문자가 연산자라면 * 스택에서 상단 숫자 2개를 꺼낸다. * 2개의 숫자..
문제 유형: 슬라이딩 윈도우 슬라이딩 윈도우 알고리즘은 창문이 옆으로 이동하는 것처럼 문제를 푸는 방식이다. 어떤 배열이나 리스트에서 연속되는 원소의 최대합을 구한다고 가정해보자. 만약 이중for문을 이용해서 풀게 된다면 데이터에 접근할 때 중복이 생기게된다. 예를 들면, {1, 2, 3, 4, 5, 6,}에서 4개의 연속되는 원소의 합을 구할 때 이중 for문을 이용하면 첫 번째: 1, 2, 3, 4를 접근하게 되고, 두 번째에서 2, 3, 4, 5에 접근하게 된다. 즉 2, 3, 4는 중복되서 값을 읽어야 하기 때문에 낭비가 발생하게된다. 슬라이딩 윈도우 알고리즘을 이용하면 이러한 중복을 해결할 수 있다. 슬라이딩 윈도우는 일단 첫 4개의 값을 읽은 다음에 다음번 부터는 한 개의 for문을 이용해서 ..

수치형 데이터 이외에 문자열 데이터도 연산을 할 수 있습니다. 연산자/함수 연산 데이터베이스 + 문자열 결합 SQL Server || 문자열 결합 Oracle, DB2, PostgreSQL CONCAT 문자열 결합 MySQL 예시 테이블 1.문자열 결합하기 quantity가 사실 INTEGER형 데이터지만 CONCAT 함수를 이용해서 문제없이 결합할 수 있습니다. 2.SUBSTRING 함수 일부 문자열 추출하기 SUBSTRING('20140125001', 1, 4) --> '2014' SUBSTRING('20140125001', 5, 2) --> '01' 3.TRIM 함수 문자열 앞 뒤로 여분의 스페이스가 있을 경우 이를 제거해주는 함수 TRIM('ABC ') --> 'ABC' 4.CHARACTER_LE..
데이터베이스 객체: 테이블 이외에 다양한 데이터를 저장하거나 관리하는 것을 말한다. 예를들면 뷰(View) 테이블: 행과 열로 구성된 표 형식의 데이터 데이터 종류 수치형 데이터: 숫자로 된 데이터 문자열형 데이터: 문자열로된 데이터 날짜시간형 데이터: 날짜와 시각을 나타내는 데이터

인텔리제이로 코딩을하다가 문득 클래스의 상속 관계나 구현 관계를 알고 싶을 때가 있습니다. 방법 클래스명에 커서를 놓고 Ctrl + Shift + Alt + u를 누르거나 클래스명 우클릭 --> Diagrams --> Show Diagram을 누르면 클래스의 관계를 다이어그램으로 볼 수 있습니다. 결과
문제 유형 재귀 풀이 방법 재귀 문제는 다음과 같이 푼다. 재귀 함수는 반드시 1.탈출문 2.함수 안에서 자신 메소드 호출 두 가지가 필요하다. 그리고 이 두가지는 if - else 구조를 사용해서 풀어야한다. 코드 import java.util.Scanner; public class Main { public int factorial(int n) { if (n == 1) // 탈출문 return 1; else return n * factorial(n-1); // 자기 자신 호출 } public static void main(String[] args) { Main T = new Main(); Scanner in = new Scanner(System.in); int n = in.nextInt(); Syste..