일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- 구현
- binarysearch
- 알고리즘
- programmers
- BOJ
- 자바
- 백준14889
- 백준14502
- 프로그래머스
- BOJ #Java #1003 #DP
- 코딩테스트
- 백준
- BOJ11724
- boj2343
- jparepository
- 백준 14888
- BOJ3985
- 자료구조
- entitymanager
- 파괴되지않은건물
- 이진탐색
- 백준2346
- 백준 12865
- 자물쇠와 열쇠
- 이분탐색
- 덱
- boj2792
- Today
- Total
목록BOJ (18)
Hzim-dev

✨ 문제 ✨ https://www.acmicpc.net/problem/2346 ✨ 요약 ✨ 각 풍선 안에 들어있는 -N보다 크거나 같고, N보다 작거나 같은 정수만큼 이동하여 다음 풍선을 터뜨린다양수가 적혀 있을 경우에는 오른쪽으로, 음수가 적혀 있을 경우에는 왼쪽으로 이동한다 ✨ 문제 풀이 과정 ✨ 1번 풍선의 왼쪽에는 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선이 있다 => 원형 형태로 생각하고 문제를 풀어야 하기 때문에 List 혹은 Deque 를 생각했다 ✨ 풀이 ✨ 1. 이동 값과 인덱스 값을 포함하는 내부 클래스 Balloon 생성2. Deque에 Balloon 객체로 입력 받기3. 양수인 경우 앞에서부터 뒤로 풍선 이동, 음수인 경우 뒤에서부터 앞으로 풍선 이동 ✨ 코..

📍 문제 📍https://www.acmicpc.net/problem/2792 📍 요약 📍N명의 학생들에게 M가지의 서로 다른 보석을 나누어주려고 할 때, 가장 많은 보석을 가져간 학생이 지닌 보석의 수가 질투심이다학생은 항상 같은 색상의 보석만 가질 수 있다는 조건을 지키며 질투심이 최소가 되도록 보석을 나누어주는 방법을 찾아야한다 📍문제 풀이 과정📍한 학생이 가질 수 있는 보석의 최대 개수가 최소한이 되면서, 정해진 N명의 학생들에게 보석을 나눠줘야 하므로 이분 탐색으로 적합한 보석 갯수 찾기이분 탐색 시작과 끝 범위를 선정하는 것이 관건가질 수 있는 보석의 수가 탐색 범위이므로 보석 개수를 탐색 기준으로 진행1. start = 보석을 나누는 최소 단위이므로 02. end = 한 학생이 가..

문제https://www.acmicpc.net/problem/2343 요약NxN 크기의 자물쇠와 MxM 크기의 열쇠의 돌기 부분을 맞춰 열 수 있는지 판별하는 문제자물쇠 영역을 벗어난 부분에 있는 열쇠의 홈과 돌기는 영향을 주지 않음문제 풀이 과정N개의 강의를 M개의 블루레이에 분배할 수 있는 블루레이 크기의 최소 값을 구해야하는 문제이므로 이분탐색을 사용하여 풀이 진행이분 탐색 시작과 끝 범위를 선정하는 것이 관건1. M(블루레이)이 1일 경우, 모든 강의의 합을 담을 수 있어야하므로 end는 모든 강의의 합2. M(블루레이)이 N과 동일할 경우, 가장 작은 강의부터 큰 강의까지 모두 각각 담을 수 있도록 start는 강의 크기 중 가장 큰 값풀이1. start, end 값을 조건에 따라 지정2...

문제 https://www.acmicpc.net/problem/14502 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 풀이 연구소의 크기는 N*M의 크기이며, 0은 빈칸, 1은 벽, 2는 바이러스가 있는 곳이다 연구소 내에 벽을 꼭 3개를 세워서 바이러스가 퍼진 뒤 안전 지역의 개수가 최대가 되는 경우를 구한다 바이러스는 더이상 퍼질 수 없을 때까지 퍼지는 과정을 진행한 코드 import java.util.ArrayDeque; import java.util.Arrays; import java.util.Queue; import j..

문제 https://www.acmicpc.net/problem/14889 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 풀이 N이 주어졌을 때 N/2명으로 두 팀을 나눈다 각 팀 간의 능력치 차이가 최소가 되는 경우를 구한다 코드 import java.util.Arrays; import java.util.Scanner; public class Main{ static int n, min; static int[][] team; static boolean[] ..

문제 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 풀이 배낭에 최대 K만큼의 무게를 넣을 수 있을 때 가치 V의 최대 값 구하기 현재 가방에 넣을 수 있는 물건의 가치 값과 지금까지 가방에 넣은 물건의 가치 값 비교해서 최대 값 갱신하기 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.I..

문제 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 풀이 N개의 수와 N-1개의 연산자가 주어졌을 때 만들 수 있는 계산식의 결과 중 최소값 구하기 수와 수 사이에 연산자를 넣어서 결과를 계산한다 연산자 순서가 유의미하고 중복은 허용되지 않으므로 순열을 사용해서 연산자 순서 정하기 코드 import java.util.ArrayList; import java.util.Scanner; pub..

문제 https://www.acmicpc.net/problem/7507 7507번: 올림픽 게임 각 테스트 케이스마다 "Scenario #i:"를 출력한다. 여기서 i는 테스트 케이스 번호이며 1부터 시작한다. 그 다음 줄에는 상근이가 참석할 수 있는 경기의 최대 개수를 출력한다. 문제에서도 설명했지 www.acmicpc.net 풀이 경기의 날짜와 시작시간, 종료시간이 주어질 때 상근이가 볼 수 있는 최대 경기의 수 구하기 경기장을 이동하는데 걸리는 시간이 없기 때문에 보고있는 경기의 종료시간과 다음경기의 시작시간이 같더라도 다음 경기 관람 가능 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamR..