본문 바로가기

java715

[백준, Java] 1637번, 날카로운 눈(이분 탐색) 문제 링크 1637번: 날카로운 눈 첫째 줄에 입력의 개수 N이 주어진다. N은 1이상 20,000이하인 수이다. 그 다음 줄부터 N줄에 걸쳐 세 개의 정수 A, C, B가 주어지는데, 이것은 A, A+B, A+2B, ..., A+kB (단, A+kB ≦ C) 의 정수들이 정수더미 www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 이 문제에 핵심 1. N개의 정수 더미가 주어지며, A, B, C을 통해서 정수 더미의 속한 값을 구할 수 있습니다. 2. 정수.. 2023. 10. 3.
[백준, Java] 22988번, 재활용 캠페인(투 포인터, 정렬) 문제 링크 22988번: 재활용 캠페인 첫 번째 용기와 두 번째 용기를 가져가서 용량이 $\left(0+1+\frac{13}{2}\right)$㎖ $=$ $7.5$㎖ 남은 용기를, 세 번째 용기와 네 번째 용기를 가져가서 용량이 $\left(2+3+\frac{13}{2}\right)$㎖ $=$ $11.5$㎖ 남은 용 www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 이 문제에 핵심 1. N개의 헤어 에센스는 X크기의 용기가 존재하며, 용기마다 헤어 에센스가.. 2023. 9. 14.
[구름톤 챌린지, Java] 20일차, 연결 요소 제거하기(BFS, 구현) 문제 링크 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 접근 방법 이 문제에 핵심 1. N × N 배열에는 알파벳 또는 '.' 가 적혀있습니다. 2. 상하좌우 인접한 칸에 같은 알파벳이 존재하면 두 칸은 연결되어 있다고 판단하며, 이 집합을 연결 요소라고 합니다. 3. Q번 아래와 같은 과정을 진행합니다. 4. Q번 과정을 실행한 이후에 N × N 배열의 값들을 결과로 출력합니다. 알고리즘 진행 순서. 1. 입력된 정보를 저장합니다. 2. Q번 동안 문제에서 설명한 과정을 BFS을 통해서 진행합니다. 3. Q번 진행한 이후 배열의 값들을 결과로 출력합니다. 구현 Q번 동안 문제에 설명한 내용의 과정을 진행합니다. N : 3 K : 2 ... 2023. 9. 8.
[구름톤 챌린지, Java] 19일차, 대체 경로(다익스트라) 문제 링크 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 접근 방법 이 문제에 핵심 1. N개의 도시가 존재하며, 각 도시롤 연결하는 M개의 양방향 도로가 존재합니다. 2. i일에는 i번째 도시가 공사로 인하여 폐쇄되면서, 해당 도시 관련 도로를 사용할 수 없습니다. 3. 플레이어가 S도시에서 E도시에 도착하지 못하거나 공사 중일 때에는 -1을 결과로 출력합니다. 4. 플레이어가 S도시에서 E도시에 도착할 때 방문하는 최소 도시 개수를 결과로 출력합니다. 5. 결과를 출력할 때에는 각 도시가 공사중일 때 최소 도시 개수를 출력합니다. 알고리즘 진행 순서. 1. 입력된 정보를 저장합니다. 2. 1 ~ N번 도시가 공사 중일 때 S도시에서 E.. 2023. 9. 8.
[구름톤 챌린지, Java] 18일차, 중첩 점(누적합) 문제 링크 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 접근 방법 이 문제에 핵심 1. 길이가 N인 정사각형이 존재하며, 1 × 1 크기의 정사각형으로 구분되어있습니다. 2. 반직선 (y, x)를 그리며, 해당 반직선은 (y, x)의 칸을 지납니다. 3. 반직선의 방향은 상하좌우만 가능하며, 같은 칸을 지나는 평행한 반직선은 서로 만나지 않는다. 4. 좌우 반직선과 상하 반직선의 중첩점이 생기는 개수를 결과로 출력합니다. 알고리즘 진행 순서. 1. 입력된 정보를 저장합니다. 2. 좌우 반직선의 대한 누적합을 구한 뒤, 상하 반직선을 기준으로 중첩점을 구합니다. 3. 구한 중첩점의 개수를 결과로 출력합니다. 구현 이 문제를 접근할 때 각각.. 2023. 9. 7.
[구름톤 챌린지, Java] 17일차, 그래프의 밀집도(BFS) 문제 링크 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 접근 방법 이 문제에 핵심 1. N개의 컴퓨터 존재하며, 각 컴퓨터를 양방향 연결하는 M개의 회선이 존재합니다. 2. 같은 컴퓨터 쌍을 연결하는 회선은 최대 1개입니다. 3. 컴퓨터가 회선으로 연결되어 그룹을 컴포넌트라고 합니다. 4. 컴포넌트에는 밀도가 존재하며, 회선의 수 ÷ 컴퓨터의 수 입니다. 5. 밀도가 가장 높은 컴포넌트를 결과로 출력합니다. 6. 밀도가 같으면 문제의 조건에 맞게 결과를 반환합니다. 알고리즘 진행 순서. 1. 입력된 정보를 저장합니다. 2. 컴포넌트에 속하지 않는 컴퓨터를 기준으로 BFS을 진행하여 컴포넌트를 구성합니다. 3. 탐색이 종료되었을 때 조건에.. 2023. 9. 5.