728x90
이 문제를 풀때
모든 풀이들이 모든 값을 바꾸고 나서
0으로 6개를 바꾸는 것이 였다.
하지만 나는 처음부터 10개만 바꾸고 싶었다.
그래서 랜덤으로 좌표를 찍고 그 좌표를 문자열로 저장해 비교하고 싶었다.
public class Q10 {
public static void main(String[] args) {
//2차원 배열 선언
int [][]arr1 = new int [4][4];
String [][]arr2 = new String [4][4];
//배열 저장
for(int i=0; i<10; i++) {
//랜덤 생성
int Q = (int)(Math.random()*10+1);
int ran1 = (int)(Math.random()*4);
int ran2 = (int)(Math.random()*4);
//배열에 값 저장
arr1[ran1][ran2] = Q;
arr2[ran1][ran2] = String.valueOf(ran1)+","+String.valueOf(ran2);
//값이 중복 되면 다시
for(int x=0; x<4; x++) {
for(int y=0; y<4; y++) {
String res1 = String.valueOf(x)+","+String.valueOf(y);
if(res1.equals(arr2[ran1][ran2])) {
int G = (int)(Math.random()*10+1);
arr1[ran1][ran2] = G;
i--;
}
}
}
}
//출력하기
for(int x=0; x<4; x++) {
for(int y=0; y<4; y++) {
System.out.print(arr1[x][y]+"\t");
}
System.out.println();
}
}
}
이 코드는 작동하지 않는다...
그리고 제일 하면 안되는 프로그램인
처음부터 검색해서 중복을 검사하는
비효율적인 코드가 짜여져있다.
그래도 글을 쓴 이유가 있다.
생각한 것들이 내 마음대로 만들지 못한다는 분함을 저장해두고 싶었다.
더 열심히 공부해서 이 문제는 꼭 내 뜻대로 만들고 싶다.
728x90
'프로그래밍 > JAVA' 카테고리의 다른 글
명품자바 3장 10번 문제 (0) | 2022.12.08 |
---|---|
항상 사용하는 배열 순서대로 출력하기 (0) | 2022.12.08 |
액수 입력 받아 금액 변환 - 명품자바 3장 6번 (0) | 2022.12.08 |
자바 구구단 배열로 출력하기 (0) | 2022.12.05 |
for-each 문 (0) | 2022.11.30 |