일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링부트 도커 배포
- 프로그래머스
- 프로그래머스 문자열 정렬
- Queue
- index of
- 클라이언트
- 이진수 변환
- 알고리즘
- 프로그래머스 자바
- 백준 N과 M 자바
- 스프링부트 도커
- Programmers
- 오름차순 정렬
- Stack
- COS Pro
- lv2
- SWEA
- 스프링부트 도커로 배포
- StringTokenizer
- 버퍼
- java
- 백준
- 프로그래머스 풀이
- 자바
- 스택
- lv0
- 삼각형의 완성조건
- 큐
- 문자열
- Lv1
- Today
- Total
목록분류 전체보기 (416)
mun dev
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/FhyFk/btsakeO9j6w/0NppnysC6CAZkIM7DEU2n0/img.png)
스택(Stack) 먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조 입구와 출구가 동일한 형태로 스택을 시각화 FILO(First In Last Out) 이러한 과정으로 위 과정이 수행 되는 것을 알 수 있다. 스택 구현 예제 위 과정을 코드로 구현 한 것이다. 실행결과는 1 3 2 5가 나오는 것을 알 수 있다. import java.util.*; public class Main { public static void main(String[] args) { Stack s=new Stack(); s.push(5); s.push(2); s.push(3); s.push(7); s.pop(); s.push(1); s.push(4); s.pop(); while(!s.empty()) { // 스택의 최..
문제설명 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자. S = A[0] × B[0] + ... + A[N-1] × B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다. S의 최솟값을 출력하는 프로그램을 작성하시오. ✅ 통과한 코드 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { Scanner sc=new Scanner(System.i..
문제설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를 ..
문제설명 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 총 3+1+4 = 8분이 필요하게 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/RuJBI/btsagqP2AyY/2oL3LKWyoNaOgrNMY9mqt0/img.png)
구현(Implementation) 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제를 지칭한다. 예시 알고리즘은 간단한데 코드가 지나칠 만큼 길어지는 문제 실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제 문자열을 특정한 기준에 따라서 끊어 처리해야 하는 문제 적절한 라이브러리를 찾아서 사용해야 하는 문제 예제 문제1. 상하좌우 여행가 A는 N x M 크기의 정사각형 공간 위에 서있습니다. 이 공간은 1 x 1크기의 정사각형으로 나누어져 있습니다. 가장 왼쪽 위 좌표는 (1,1)이며, 가장 오른쪽 아래 좌표는 ( N,N)에 해당합니다. 여행가 A는 상, 하, 좌, 우 방향으로 이동할 수 있으며, 시작 좌표는 항상(1,1)입니다. 우리 앞에는 여행가 A가 이동할 계획이 적힌 계획서가 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/2UIBy/btsal4dHWZw/kTJ1HN8qar49oDzTHHFXQK/img.png)
그리디 알고리즘(탐욕법) 현재상황에서 지금 당장 좋은 것만 고르는 방법을 의미하며, 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검토합니다. 그리디 알고리즘은 매 상황에서 큰 값을 고르는 알고리즘이다. 예제 문제 1. 거스름돈 가장 큰 화폐 단위부터 돈을 거슬러 주는 것이 최적의 해를 보장하는 이유는 무엇일까요? 가지고 있는 동전 중에서 큰 단위가 항상 작은 단위의 배수이므로 작은 단위의 동전들을 종합해 다른 해가 나올 수 없기 때문 화폐의 종류가 K라고 할 때, 소스코드의 시간 복잡도는 O(K) 시간 복잡도는 거슬러줘야 하는 금액과는 무관, 동전의 총 종류에만 영향을 받습니다. public class Main{ public static void main(String[]..
문제설명 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버리고 나면, 남는 카드는 4가 된다. N이 주어졌을 때, 제일 마지막에 남게 되는 카드를 구하는 ..