[λ°°μ΄] 10. λ΄μ°λ¦¬
μ€λͺ
μ§λ μ λ³΄κ° N*N 격μνμ μ£Όμ΄μ§λλ€. κ° κ²©μμλ κ·Έ μ§μμ λμ΄κ° μ°μ¬μμ΅λλ€.
κ° κ²©μνμ μ«μ μ€ μμ μ μνμ’μ° μ«μλ³΄λ€ ν° μ«μλ λ΄μ°λ¦¬ μ§μμ λλ€. λ΄μ°λ¦¬ μ§μμ΄ λͺ κ° μλ μ§ μμλ΄λ νλ‘κ·Έλ¨μ μμ±νμΈμ.
격μμ κ°μ₯μ리λ 0μΌλ‘ μ΄κΈ°ν λμλ€κ³ κ°μ νλ€.
λ§μ½ N=5 μ΄κ³ , 격μνμ μ«μκ° λ€μκ³Ό κ°λ€λ©΄ λ΄μ°λ¦¬μ κ°μλ 10κ°μ λλ€.

μ λ ₯
첫 μ€μ μμ°μ Nμ΄ μ£Όμ΄μ§λ€.(2<=N<=50)
λ λ²μ§Έ μ€λΆν° Nμ€μ κ±Έμ³ κ° μ€μ Nκ°μ μμ°μκ° μ£Όμ΄μ§λ€. κ° μμ°μλ 100μ λμ§ μλλ€.
μΆλ ₯
λ΄μ°λ¦¬μ κ°μλ₯Ό μΆλ ₯νμΈμ.
μμ μ λ ₯ 1
5
5 3 7 2 3
3 7 1 6 1
7 2 5 3 4
4 3 6 4 1
8 7 3 5 2
μμ μΆλ ₯ 1
10
<<νμ΄>>
-λμ νμ΄-
μ΄ λ¬Έμ λ μ΄λ ΅μ§λ μλ€. λ°κΉ₯μ΄ 0μΌλ‘ λλ¬ μμ¬ μλ€λ κ²μ κ°μν΄μ λ΄λΆ κ°μ λ£μ΄μ€λ€κ³ μκ°νμ λ, μλ λ°°μ΄ ν¬κΈ°μ 2μ© μ¦κ°μν€λ©΄ λλ€. κ·Έλ¦¬κ³ κ°μ λ£μ λλ μ΄μ€ forλ¬ΈμΌλ‘ 1λΆν° nκΉμ§ λμ ν΄μ£Όλ©΄ λλ€.
κ·Έ λ€μ 쑰건문μ &&λ₯Ό λ§μ΄ μ¬μ©νμ§λ§ μνμ’μ° μ λΆλ€ ν΄ λ, count μ¦κ°μμΌμ μ΅μ’ λ΄μ°λ¦¬ μλ₯Ό κ³μ°νλ©΄ λλ€.
import java.util.Scanner;
class Main {
public int solution(int n, int[][] arr) {
int count = 0;
for (int i = 1; i < n + 1; i++) {
for (int j = 1; j < n + 1; j++) {
if (arr[i][j] > arr[i + 1][j] && arr[i][j] > arr[i][j + 1] && arr[i][j] > arr[i - 1][j] && arr[i][j] > arr[i][j - 1] ){
count++;
}
}
}
return count;
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[][] arr = new int[n + 2][n + 2];
for (int i = 1; i < n + 1; i++) {
for (int j = 1; j < n + 1; j++) {
arr[i][j] = in.nextInt();
}
}
System.out.println(T.solution(n, arr));
}
}
-κ°μ¬λ νμ΄-
μ°μ μ΄λ² κ°μ¬λμ νμ΄λ μκ° λ³΅μ‘λλ λλ³΄λ€ λ³΅μ‘ν΄ λ³΄μΈλ€.
νμ§λ§
int[] dx = {-1, 0, 1, 0};
int[] dy = {0, 1, 0, -1};
μ΄λ° νμμΌλ‘ λκ³ μν μ’μ° κ°μ λΉκ΅νλ νλλ° μ΄λ° μμ μ§κΈμ λͺ°λΌλ λμ€μ 볡μ‘ν΄μ§λ©΄ μ μ©νλ€.(κ·Έ λ¬Έμ λ₯Ό μ λλ‘ λ§λ λ΄μΌ ν κ±° κ°κΈ΄νλ€ γ γ )
μλ¬΄νΌ μ΄λ¬ν λ°©μμ ν΅ν΄μ ꡬν μ μμκ³ , booleanμ ν΅ν΄μ μ°Έμ΄λ©΄ answer ++λ₯Ό ν΄μ€¬λ€.
import java.util.Scanner;
class Main {
int[] dx = {-1, 0, 1, 0};
int[] dy = {0, 1, 0, -1};
public int solution(int n, int[][] arr) {
int answer = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
boolean flag = true;
for (int k = 0; k < 4; k++) {
int nx = i + dx[k];
int ny = j + dy[k];
if (nx >= 0 && nx < n && ny >= 0 && ny < n && arr[nx][ny] >= arr[i][j]) {
flag = false;
break;
}
}
if (flag) answer++;
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[][] arr = new int[n][n];
for (int i = 0; i < n ; i++) {
for (int j = 0; j < n ; j++) {
arr[i][j] = in.nextInt();
}
}
System.out.println(T.solution(n, arr));
}
}
<<μΆκ° λ΄μ©>>
1. μμ
νΉν λ€μ μκΈ°μν€κ³ κΈ°μ΅ν΄μΌ ν λ΄μ©μ΄ μλ€λ©΄, λ°λ‘ μ΄ μ½λμ΄λ€.
if (nx >= 0 && nx < n && ny >= 0 && ny < n && arr[nx][ny] >= arr[i][j]) {
flag = false;
break;
}
ifμμ μλ λ€ν μ°μ°μ μμλ μ€μνλ€. μ²μ λΆν°
arr[nx][ny] >= arr[i][j]
μ΄λ¬ν νμμ΄ μ€λ©΄ νλ¦¬κ² λλ€. λ¨Όμ μ¬μ©νμ§ λͺ»νλ nx, nyλ₯Ό λΆλ₯ ν΄λκ³ ν΄μΌνλ€.
λ°λΌμ μμ 첫λ²μ§Έ μ½λμ²λΌ λ¨Όμ κ±Έλ¬ λκ³ κ·Έλ€μ μ½λλ₯Ό λ£μ΄μΌ νλ€.
2. break
break;
-> μ΄λ μ€ννκ³ μλ λ°λ³΅λΆμ μ€μ§ μν€κ³ κ·Έ μΈλΆμ μ½λκ° λμκ°λ€. μ¬κΈ°μ returnμ λ£κ²λλ©΄ μμ μ°μ°μ΄ λλκ³ μ’ λ£ λλ€.
'μ½λ©ν μ€νΈ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°°μ΄] 12. λ©ν λ§ (1) | 2023.12.22 |
---|---|
[λ°°μ΄] 11. μμλ°μ₯ μ νκΈ° (1) | 2023.12.21 |
[λ°°μ΄] 9. 격μν μ΅λν© (0) | 2023.12.18 |
[λ°°μ΄] 8. λ±μꡬνκΈ° (0) | 2023.12.18 |
[λ°°μ΄] 7. μ μ κ³μ° (1) | 2023.12.17 |
λκΈ