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

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

📍 문제 📍https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 📍 요약 📍적의 공격 혹은 아군의 회복 스킬이 모두 끝난 후, 파괴되지 않은 건물의 개수 구하기적이 공격할 때는 내구도가 감소하고, 아군이 회복 스킬을 사용할 때는 내구도가 회복됨 📍문제 풀이 과정📍공격과 회복이 반복되는데 모든 범위만큼 반복문을 일일이 실행하기엔 행, 열 각각 크기가 최대 1000이므로 시간 초과가 날 것 같았다. 그래서 모든 경우를 기록해두고 한꺼번에 실행하..

📍 이분탐색이란?오름차순으로 정렬된 리스트에서 탐색 범위를 줄여나가며 원하는 데이터를 검색하는 알고리즘탐색 범위를 반으로 나누며 좁혀가는 방식으로 동작하여 시간 복잡도는 O(log N) 📍헷갈렸던 부분이분 탐색을 수행할 때는 '이분 탐색의 범위'와 '이분 탐색의 기준'이 중요한데, 나는 특정 범위 내에서 최소 값이나 최대 값을 찾아야 하는 경우에 while 조건문을 어떻게 처리해야 할지 이해하기 어려웠다. 이를 위해서 Upper Bound, Lower Bound 2가지 방식에 대한 이해가 필요했다. 1. Lower Bound특정 값 K 보다 '크거나 같은' 값이 처음 나오는 위치예시 배열에서 K = 3을 탐색할 때 lower bound의 출력 값은 index = 2// 방법 1// {1,3,10,2..

📍 문제 📍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://school.programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 요약NxN 크기의 자물쇠와 MxM 크기의 열쇠의 돌기 부분을 맞춰 열 수 있는지 판별하는 문제자물쇠 영역을 벗어난 부분에 있는 열쇠의 홈과 돌기는 영향을 주지 않음문제 풀이 과정"자물쇠 영역을 벗어난 부분에 있는 열쇠의 홈과 돌기는 자물쇠를 여는데 영향을 주지 않는다" 라는 말을 보고 열쇠의 크기가 자물쇠보다 클 수 도 있다는 의미로 받아들였지만 자물쇠의 모든 홈을 채워주기만 한다면 자물쇠 영역을..

문제 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[] ..