일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 싱글톤 패턴
- 팩토리패턴
- try-catch
- 스프링 싱글톤
- 스프링 컨테이너
- 스프링
- 팩토리 패턴
- Class Loader
- 스프링 빈
- 자바의 면접
- SOLID원칙
- 네트워크
- 후위표기식
- 옵저버 패턴
- 백준 1935
- removeAll
- mvvm패턴
- 빈 타입 조회
- @Tranctional
- 포워드 프록시
- TCP/IP 4계층
- www.naver.com치면 발생하는일
- 백준 2164
- 참조형 매개변수
- k번째큰수
- 쇠막대기
- 리버스 프록시
- 기본형 매개변수
- 참조형 반환타입
- 전략 패턴
- Today
- Total
목록알고리즘 (9)
스파이더 웹 개발

5. 쇠막대기 설명 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저의 배치는 다음 조건을 만족한다. • 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓는다. • 각 쇠막대기를 자르는 레이저는 적어도 하나 존재한다. • 레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않는다. 아래 그림은 위 조건을 만족하는 예를 보여준다. 수평으로 그려진 굵은 실선은 쇠막대기이고, 점은 레이저의 위치, 수직으로 그려진 점선 화살표는 레이저의 발사 방향이다. 이러한 레이저와 쇠막대기의 배치는 다..
기능개발 - 프로그래머스 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업..

문제의 내용을 정리하자면 moves배열의 요소의 순서대로 0이 아닌 숫자를 꺼내와 박스에 담고 박스에 담긴 맨 위의 숫자와 현재 담으려는 숫자가 같으면 터트려 인형의 개수를 구하는 문제이다 Stack을 활용한 문제인데, 이차원 배열을 나름 응용을 해야하는 문제인거같다 moves 배열의 요소를 이차원 배열에서 '열'에 해당하는 요소로 사용하면 쉽게 구현할 수 있다 /* 3. 크레인 문제 Stack과 나름의 나는 이차원배열을 활용한 문제라고생각한다 */ import java.util.Scanner; import java.util.Stack; public class b { public static int solution(int n, int[][] a, int m, int[] b){ int answer = 0;..

큐를 활용한 문제 마지막의 남은 왕자를 구하는 문제이다 1. 1번~N번까지의 왕자를 큐에 넣어준다 2. 특정숫자를 비교하기위한 변수 count를 선언한다 3. 특정숫자 k가되기 전까지 큐에 있는 왕자를 순서대로 처음왕자를 빼고 처음왕자를 맨 뒤로 보내준다 4. 특정숫자까지 반복하다가 특정숫자와 count변수가 일치하는 경우 해당 왕자를 아예 빼버린다( pop(); ) 5. count변수를 초기화해주고 큐의 size가 1이될때까지 반복한다 import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class A { public static void main(String[] args) { Scanner scanne..

후위 표기식 문제이다 후위 표기식이란 연산자가 피연산자 뒤의 위치하는 것을 의미한다 Stack을 활용한다 이제 문제를 살펴보자 문제에서 후위표기식 문자열이 주어지는데 문자열 중 알파벳은 주어지는 숫자와 1:1 매핑관계이다 그러므로 문제에서는 A일 경우 숫자 1을 스택에 넣어주면된다 연산자일 경우 스택에 넣은 값을 끄내 해당연산을 시행한후 값을 다시 스택에 넣어준다 결과 값을 또 다른연산을 만났을경우 계산을 반복하면된다 import java.util.Scanner; import java.util.Stack; public class C { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scan..

Stack을 활용한 문제이다(괄호문제가 나온다면 stack을 고려해보자) 괄호안에서 쇠막대기와 레이져를 구분을 해야 문제를 해결하는게 팁이다. 주어진 문제에 예시 이미지를 보면 레이져의 경우 닫힌괄호( " ) " )가 나오면 바로 직전 문자의 경우가 열린 괄호가 나온다 ( " ( " ) 또한 레이져가 한번 실행되면 나무막대가 잘리면서 좌측의 나무막대의 갯수가 나오는데 해당 내용을 활용하여 답을 구하면 된다 마지막으로 쇠막대기의 끝 부분 닫힌 괄호를 만나면 해당 괄호에 해당하는 열린괄호를 pop해주면된다 import java.util.Scanner; import java.util.Stack; public class Main { public static int solution(String str){ int ..