SMALL
https://softeer.ai/practice/9657
레벨2를 맨처음 필터하면 나오는 문제 나무 공격이다.
게임 요소를 가미한 게이미피케이션 느낌의 문제였다.
레벨2가 되니 조금 지문이 길어진 느낌이다. 하지만 문제 난이도는 생각보다 간단한것같다.
위치만 잘 지정해두고 반복을 잘 돌리면 해결이 되는 문제였다.
import java.io.*;
import java.util.*;
public class Main {
private static int dap = 0;
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 m = Integer.parseInt(st.nextToken());
int[][] arr = new int[n][m];
for (int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine(), " ");
for (int j = 0; j < m; j++) {
arr[i][j] = Integer.parseInt(st.nextToken());
}
}
st = new StringTokenizer(br.readLine(), " ");
int l1 = Integer.parseInt(st.nextToken());
int r1 = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine(), " ");
int l2 = Integer.parseInt(st.nextToken());
int r2 = Integer.parseInt(st.nextToken());
attack(arr, l1, r1);
attack(arr, l2, r2);
check(arr);
bw.write(dap + "\n");
bw.flush();
bw.close();
}
private static void attack(int[][] arr, int l, int r) {
for (int i = l - 1; i < r; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (arr[i][j] == 1) {
arr[i][j] = 0;
break;
}
}
}
}
private static void check(int[][] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (arr[i][j] == 1) {
dap += 1;
}
}
}
}
}
'알고리즘 단련장 > 소프티어' 카테고리의 다른 글
[소프티어] Yeah, but How? 레벨2 자바 풀이 (한양대 HCPC 2023) (1) | 2024.10.29 |
---|---|
[소프티어] 진정한 효도 레벨2 자바 풀이 (0) | 2024.10.28 |
[소프티어] 연탄의 크기 레벨2 자바 풀이 (0) | 2024.10.28 |
[소프티어] 레벨1 자바로 풀기 (올솔 후기) (1) | 2024.10.28 |
[소프티어] 위험한 효도 레벨 1 자바 풀이 (0) | 2024.10.28 |