[JAVA] 백준 2110 - 공유기 설치
2022. 8. 18. 19:24
JAVA/백준(BOJ) 문제풀이
문제 https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 해결 방법 일단 문제를 이해하는 것도 조금 헷갈려서 문제부터 정리해 봄 집 주소로 [1, 2, 4, 8, 9]가 들어오고 공유기 개수가 3개로 들어왔을 때 왜 정답이 3일까? 최대 거리가 1이라면 => [1, 2, 4, 8, 9] 5개의 집에 공유기를 설치해야 됨 최대 거리가 2라면 => 1번집에 공유기를 설치하면 2번집에는 설치하지 않아도..
[JAVA] 백준 20191 - 줄임말
2022. 6. 24. 18:26
JAVA/백준(BOJ) 문제풀이
문제 https://www.acmicpc.net/problem/20191 20191번: 줄임말 문자열 A가 문자열 B의 줄임말이라는 것은 B의 순서를 바꾸지 않고 0 또는 그 이상 개수의 문자를 지워 A를 만들 수 있다는 뜻이다. 정의에 의해서 B는 자기 자신의 줄임말임에 유의하라. 예를 들 www.acmicpc.net 해결 방법 문제에서 주어진 S, T의 길이가 매우 길기 때문에 S * T 방식으로 접근하면 시간초과 발생 문자열 S는 한번씩 돌면서 단어를 찾아야 하기 때문에 여기서는 시간을 줄일 수 없음 따라서 T에서 시간을 줄여야 함 => 이진탐색 사용 입력으로 S = abbcca, T = cbca가 들어왔다고 가정해보자 T의 각 문자별로 위치들을 담고있는 ArrayList 생성 (인덱싱 => a =..