1. ์ ์๋ฅผ ๋์ ํ์ผ๋ก ๋ฐฐ์นํ๊ธฐ
https://school.programmers.co.kr/learn/courses/30/lessons/181832
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
โผ ๋ฐฉ๋ฒ 1
class Solution {
public int[][] solution(int n) {
int[][] answer = new int[n][n];
int num = 1;
int rowStart = 0;
int rowEnd = n - 1;
int colStart = 0;
int colEnd = n - 1;
while(rowStart <= rowEnd && colStart <= colEnd) {
for(int i = colStart; i <= colEnd; i++) {
answer[rowStart][i] = num++;
}
rowStart++;
for(int i = rowStart; i <= rowEnd; i++) {
answer[i][colEnd] = num++;
}
colEnd--;
for(int i = colEnd; i >= colStart; i--) {
answer[rowEnd][i] = num++;
}
rowEnd--;
for(int i = rowEnd; i >= rowStart; i--) {
answer[i][colStart] = num++;
}
colStart++;
}
return answer;
}
}
โผ ๋ฐฉ๋ฒ 2
class Solution {
public int[][] solution(int n) {
int[][] answer = new int[n][n];
int num = 1;
int x = 0, y = 0;
int[] dx = {0, 1, 0, -1};
int[] dy = {1, 0, -1, 0};
int direction = 0;
while(num <= n * n) {
answer[x][y] = num++;
int nx = x + dx[direction];
int ny = y + dy[direction];
if(nx < 0 || nx >= n || ny < 0 || ny >= n || answer[nx][ny] != 0) {
direction = (direction + 1) % 4;
nx = x + dx[direction];
ny = y + dy[direction];
}
x = nx;
y = ny;
}
return answer;
}
}
2. ํน๋ณํ ์ด์ฐจ์ ๋ฐฐ์ด 2
https://school.programmers.co.kr/learn/courses/30/lessons/181831
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
โผ ๋ฐฉ๋ฒ 1
class Solution {
public int solution(int[][] arr) {
int answer = 1;
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[i].length; j++) {
if(arr[i][j] != arr[j][i]) {
answer = 0;
break;
}
}
}
return answer;
}
}
โผ ๋ฐฉ๋ฒ 2
import java.util.stream.IntStream;
class Solution {
public int solution(int[][] arr) {
int answer = 0;
answer = IntStream.range(0, arr.length).allMatch(i -> IntStream.range(0, arr[0].length).allMatch(j -> arr[i][j] == arr[j][i])) ? 1 : 0;
return answer;
}
}
3. ์ ์ฌ๊ฐํ์ผ๋ก ๋ง๋ค๊ธฐ
https://school.programmers.co.kr/learn/courses/30/lessons/181830
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
โผ ๋ฐฉ๋ฒ 1
class Solution {
public int[][] solution(int[][] arr) {
int max = Math.max(arr.length, arr[0].length);
int[][] answer = new int[max][max];
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[0].length; j++) {
answer[i][j] = arr[i][j];
}
}
return answer;
}
}
โผ ๋ฐฉ๋ฒ 2
class Solution {
public int[][] solution(int[][] arr) {
int max = Math.max(arr.length, arr[0].length);
int[][] answer = new int[max][max];
for(int i = 0; i < arr.length; i++) {
System.arraycopy(arr[i], 0, answer[i], 0, arr[i].length);
}
return answer;
}
}
System.arraycopy()
Java Native Interface๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ clone()๋ณด๋ค ๋ ๋น ๋ฅด๋ค.
System.arraycopy( A, sourcePos, B, destPos, len );
- Object A : ๋ณต์ฌํ ๋์
- int sourcePos : ๋ณต์ฌํ ๋ฐฐ์ด(A)์ ์์ index
- Object B : ๋ณต์ฌ๋ ๋์
- int destPos : ๋ณต์ฌ๋ ๊ณณ(B)์ ์์ index
- int len : ๋ณต์ฌํ ๊ธธ์ด(์์ ๊ฐ์)
4. ์ด์ฐจ์ ๋ฐฐ์ด ๋๊ฐ์ ์ํํ๊ธฐ
https://school.programmers.co.kr/learn/courses/30/lessons/181829
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
โผ ๋ฐฉ๋ฒ 1
class Solution {
public int solution(int[][] board, int k) {
int answer = 0;
for(int i = 0; i < board.length; i++) {
if(i > k) {
break;
}
for(int j = 0; j < board[i].length; j++) {
if(i + j <= k) {
answer += board[i][j];
}
}
}
return answer;
}
}
โผ ๋ฐฉ๋ฒ 2
import java.util.stream.IntStream;
class Solution {
public int solution(int[][] board, int k) {
int answer = 0;
answer = IntStream.range(0, board.length).filter(i -> i <= k).map(i -> IntStream.range(0, board[i].length).filter(j -> i + j <= k).map(j -> board[i][j]).sum()).sum();
return answer;
}
}
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Day 02 - ์ฝ๋ฉํ ์คํธ ์ ๋ฌธ(Java) (0) | 2024.03.02 |
---|---|
Day 01 - ์ฝ๋ฉํ ์คํธ ์ ๋ฌธ(Java) (0) | 2024.03.02 |
Day 24. ์ฝ๋ฉ ๊ธฐ์ด ํธ๋ ์ด๋(Java) (0) | 2024.03.01 |
Day 23. ์ฝ๋ฉ ๊ธฐ์ด ํธ๋ ์ด๋(Java) (0) | 2024.03.01 |
Day 22. ์ฝ๋ฉ ๊ธฐ์ด ํธ๋ ์ด๋(Java) (0) | 2024.03.01 |