728x90
반응형
2024.09.29기준 - 브론즈2
728x90
백준, BEAKJOON, BOJ, JAVA, 자바
🟥 풀이
이 문제는 빈 슬롯에서 풍선을 설치할 때, 마지막까지 비어있는 슬롯의 개수를 출력하는 문제입니다.
문제 접근
- 빈 슬롯은 boolean배열로 표현을 했습니다.
- 시작하는 숫자에서 간격을 하나하나 true로 체크해주며 남은 슬롯의 칸을 계산해 주었습니다.
1. 입력받은 슬롯의 수 만큼 boolean배열을 만들어줍니다.
// 초기 빈 풍선 줄
boolean[] check = new boolean[n + 1];
// 빈 공간의 개수
int count = n;
- 빈 공간의 개수를 미리 설정한 이유는 나중에 배열을 다시 검사하면서 false를 찾는 것보다 true로 바뀔 때 하나씩 줄이는게 더 좋을거 같다고 생각했습니다.
2. 풍선들을 꽂는 횟수만큼 계산을 진행해 줍니다.
int start, unit;
while (q-- > 0) {
st = new StringTokenizer(br.readLine());
start = Integer.parseInt(st.nextToken()); // 시작 점
unit = Integer.parseInt(st.nextToken()); // 간격
for (int i = start; i <= n; i += unit) {
if (!check[i]) { // 풍선을 달지 않으면 풍선을 달아준다.
check[i] = true;
count--;
}
}
}
- 풍선을 꽂는 횟수만큼 반복문을 돌려줍니다.
- 입력 받은 시작점과 간격을 이용해 풍선을 달지 않았다면 true로 바꿔주면서 남은 빈 공간을 -1 해줍니다.
🟪 코드
package Main;
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken()); // 슬롯의 수
int q = Integer.parseInt(st.nextToken()); // 풍선들을 꽂는 횟수
// 초기 빈 풍선 줄
boolean[] check = new boolean[n + 1];
// 빈 공간의 개수
int count = n;
int start, unit;
while (q-- > 0) {
st = new StringTokenizer(br.readLine());
start = Integer.parseInt(st.nextToken()); // 시작 점
unit = Integer.parseInt(st.nextToken()); // 간격
for (int i = start; i <= n; i += unit) {
if (!check[i]) { // 풍선을 달지 않으면 풍선을 달아준다.
check[i] = true;
count--;
}
}
}
bw.write(Integer.toString(count));
bw.flush();
bw.close();
br.close();
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BEAKJOON / 백준 - JAVA 2702번 초6 수학 (0) | 2024.11.07 |
---|---|
BEAKJOON / 백준 - JAVA 29732번 Rick-Roll Virus (0) | 2024.10.02 |
BEAKJOON / 백준 - JAVA 24039번 2021은 무엇이 특별할까? (0) | 2024.09.28 |
BEAKJOON / 백준 - JAVA 15727번 조별과제를 하려는데 조장이 사라졌다 (0) | 2024.09.25 |
BEAKJOON / 백준 - JAVA 4848번 집합 숫자 표기법 (0) | 2024.09.24 |