[Programmers/코딩테스트 입문] 점의 위치, 1차원 배열 2차원 배열로 만들기 Java *새롭게 생각하기*
2022. 12. 8. 14:09ㆍIT/Programmers
728x90
반응형
2차원 평면 내에서 점의 위치 구하기 (Java)
class Solution {
public int solution(int[] dot) {
int answer = 0;
if (dot[0] > 0){ //x > 0
if(dot[1] > 0) answer = 1; //y > 0
else answer = 4;
} else { //x < 0
if(dot[1] > 0) answer = 2; //y > 0
else answer = 3;
}
return answer;
}
}
2차원으로 만들기 (Java)
1차원 배열 잘라서 2차원 배열로 만들기
#Arrays.copyOfRange()
#copyOfRange()
import java.util.Arrays;
class Solution {
public int[][] solution(int[] num_list, int n) {
int[][] answer = new int[num_list.length/n][n];
for(int i = 0; i < num_list.length/n; i++) {
answer[i] = Arrays.copyOfRange(num_list, n*i, n*(i+1));
}
return answer;
}
}
똑똑한 코드 발견
class Solution {
public int[][] solution(int[] num_list, int n) {
int len = num_list.length;
int[][] answer = new int[len/n][n];
for(int i=0; i<len; i++){
answer[i/n][i%n]=num_list[i];
}
return answer;
}
}
/랑 %를 이용한게 너무 천재적이라 할말을 잃었다.
class Solution {
public int[][] solution(int[] num_list, int n) {
int[][] answer = new int[num_list.length/n][n];
int cnt = 0;
for(int i = 0 ; i < num_list.length/n ; i++){
for(int j = 0 ; j < n ; j++){
answer[i][j] = num_list[cnt++];
}
}
return answer;
}
}
이건 무난하게 for문 두개 사용한 코드
728x90
반응형
'IT > Programmers' 카테고리의 다른 글
[Programmers/코딩테스트 연습] 주사위의 개수, 합성수 찾기 Java (1) | 2022.12.10 |
---|---|
[Programmers/코딩테스트 연습] 배열회전 Java (0) | 2022.12.09 |
[Programmers/코딩테스트 연습] 가위바위보, 조합(순서 없는 경우의 수) Java (stream, map, Colloctors, nCr) ***** (0) | 2022.12.06 |
[Programmers/코딩테스트 연습] 순서쌍, 개미군단, 모스부호(1) Java (2) | 2022.12.05 |
[Programmers/코딩테스트 연습] 진료순서 *****stream 예제 다시 볼 것***** (0) | 2022.12.04 |