일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 방법
- 생성
- 자바
- JavaScript
- 쿼리
- JPA
- GitHub
- Eclipse
- 알고리즘
- 넥사크로
- oracle
- Java
- Security
- mybatis
- jquery
- Git
- db
- 코틀린
- error
- Vue
- kotlin
- 오라클
- 시큐리티
- IntelliJ
- 에러
- Spring
- 함수
- aws
- 프로그래머스
- 스프링
- Today
- Total
목록알고리즘 (72)
송민준의 개발노트
programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr Truck이라는 클래스를 만들어서 접근 최초에는 Truck이 다리중량이 남는다면 동시에 여러대도 들어갈 수 있는 줄 알고 접근을 했다. 하지만 문제 예시를 보면 * 3 [7] [4] [5,6] * 4 [7] [4,5] [6] 위와 같이 순서대로 4, 5가 들어가는 걸 볼 수가 있다. import java.util.LinkedList; import java.ut..
programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 두개 뽑아서 더한 결과를 반환하는데 중복이 없어야 하며 오름차순으로 정렬이 되어 있어야함. 이중 for문으로 탐색을 함. TreeSet을 써서 정렬과 중복제거의 효과를 가짐 import java.util.Set; import java.util.TreeSet; public class PickTwoAndAdd { public sta..
programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 주어진 스킬들이 선행스킬을 만족하는지 체크하는 문제. 주어진 스킬들을 하나씩 체크해서 선행스킬을 만족하는지 확인해줌. 선행스킬이 기준스킬보다 뒤에 있거나(인덱스가) 없으면 그건 불합격스킬트리임. package programmers.level2; public class SkillTree { public static int solution(String skill, String[] skill_trees) { int answer = 0; for(String tree : skill_trees) { // char 쪼갬 char[] treeCharArray = tree...
programmers.co.kr/learn/courses/30/lessons/64061?language=java 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 2차원 배열을 뽑기상자라고 보고 뽑기를 실행한만큼 Stack에 담아서 위아래 두 인형이 같으면 터트리는 게임. Stack을 선택한 이유는 뽑기결과가 계속해서 쌓인다는 점과 최상단의 값을 활용해야 해서임. import java.util.Stack; /** * 4, (3, (1, 1), 3), 2, 4 * (4, (3, (1, 1), 3), (2, 2), 4) */ public c..
- 시간복잡도를 표기함으로써 작성한 코드가 얼마나 시간이 소요될지 알 수 있다. Big-O 표기법 O(1) O(log n) O(n) O(n log n) O(n^2) O(n^3) O(2^n) 상수 시간 로그 시간 직선적 시간 로그 직선적 시간 2차 시간 3차 시간 지수 시간 Better Worse 시간복잡도를 분석하는 것은 input n에 대하여 알고리즘이 문제를 해결하는 데에 얼마나 오랜 시간이 걸리는 지를 분석하는 것과 같다. 그리고 이는 Big-O 표기를 이용하여 정의할 수 있다. 1. O(1) int sum = N * (N + 10) / 2; 2. O(N) int sum = 0; for (int num = 1; num
https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 | 프로그래머스 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘 programmers.co.kr DFS 활용 재귀를 이용해 풀어주면 된다. class Solution {..
● 개념 루트 노트에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법 - 한 방향으로 끝까지 가다가 더 이상 갈 수없게 되면 이전 갈림길로 돌아가서 다시 탐색을 진행하는 방법과 유사하다. - 깊이 우선 탐색(DFS)이 너비 우선 탐색(BFS)보다 좀 더 간단하다. - 단순 검색 속도 자체는 너비 우선 탐색(BFS)에 비해서 느리다. ● 특징 - 자기 자신은 호출하는 순환 알고리즘의 형태를 가지고 있다. - 전위 순회(Pre Order)를 포함한 다른 형태(In Order, Post Order)의 트리 순회는 모두 DFS의 한 종류다. - 특정 노드를 방문했는지 여부를 반드시 검사를 해야 한다. ( 무한루프 위험이 있음) ● 시간 복잡도 - DFS는 그래프의 모든 간선을 조회한다...
https://programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 | 프로그래머스 3 [tank, kick, know, wheel, land, dream, mother, robot, tank] [3,3] 5 [hello, observe, effect, take, either, recognize, encourage, ensure, establish, hang, gather, refer, reference, estimate, executive] [0,0] programmers.co.kr (서머코딩, 윈터코딩)영어 끝말잇기 문제. 푸는데 3시간 걸렸다.... 접근 방식은 HashMap key 값에 배열에 있는 '말'을 넣고 value로 인덱..