ㅅㅂ..왤케 어렵냐...2차배열을 0~8까지를 출력할떄 랜덤하게 나오는데 중복된 수가 안나오게 만드는건데
왤케 어려운거야..?비전공에다 프로그래머 지식이 없으니까 아무리 생각해도 답이 안나오네
1차원 배열로 할떈 되는데 2차원으로 하려니까 ..ㅅㅂ..ㅠㅠ 중 값 제거하는 반복문을 써도
자꾸 수가 몇개씩 중복되서나옴.. 제거가 안되고 걍 0~8까지 랜덤하게 막나오는거 같은데
하.. 내가 짠건데 잘못짠거야?? 다 엎고 처음부터 짜야됨??
오늘 아침부터 생각해보고 이것저것 짜보다 안되서 검색해봤는데
비슷한 문제풀이 밖에 없어서 보고 내가 생각해서 넣어봤는데..
Random 랜덤 = new Random();
int[][] 배열 = new int[3][3];
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
배열[i][j] =랜덤.nextInt(9);
for(int k=0; k<j;k++)
{
if(배열[i][j] ==배열[i][k])
{
j--;
break;
}
}
}
}
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
System.out.println(배열[i][j]);
}
}
}
19개의 댓글
무분별한 사용은 차단될 수 있습니다.
8AiTNaVl
같은줄에 대해서만 중복값 제거인거 같은데
최지로
헐 진짜?? ㅠㅠ 초보라 제대로 읽을 줄도 모르네 다시 봐애겠다
명의 애들엄마
5번째줄 배열[i][j] =랜덤.nextInt(9); 에서 assign 하기 전에
막 지금까지 사용한 숫자들 담을 어레이 만들어서
랜덤으로 뽑은 숫자가 그 어레이에 없으면 assign 하고 아니면 다시 랜덤 뽑은 방법으로 하면 되지 않을까?
최지로
내가 아직 전문용어 익숙지 않아서..존 더 순화해서 말해줄 수 있을까여
ayahyahyah
랜덤 뽑은 숫자가 배열에 없으면 입력하고 없으면 다시 랜덤 돌리라는 소리
array = 배열
assign = 할당
ayahyahyah
저 k 도 0 1만 검사한다아님??? 소스코드로 짜기전에 숫자부터 체크해봐야하는거아녀
아 그건 상관없긋네
아무리 생각해도 배열 하나 더 만들고 비교해가며 걍 출력하면 안됨? 저방법 너무 비효율적이고 되긴되는건가?
최지로
꼭 이 방법만 있는건 아닌데 내 대가리로는 2차 배열로 하려면 저거밖에 모르겠어서..
코드 자체가 이상한가?ㅠ
ayahyahyah
저건 단순히 1차원 배열을 2차원배열에 집어넣은거. ij ik 비교할게 아니라 ij tk 이런식으로 비교해야할걸 단순히 생각해도 11 - 11 12 13 이거 비교하고 11 21 22 23 이런거랑은 비교를 안하는거니께
최지로
아..맞아 ㅠㅠ
대가리가 딸려서 1차원에서 했던거만 생각나서 일단 집어넣어 봤는데..하..
너무 복잡하다..
잉텔
그냥 편하게 0~8까지 저장된 배열을 만들고 2차원 배열에 넣을때마다 아까 0~8까지 저장된 배열을 매번 셔플 하면 안됨?
배열 셔플은 Collections.shuffle(Arrays.asList(1차원배열)); 이런식으로 가능
최지로
아..한번해볼게
근데 저 코드가 초보떄도 쓰는거야??
처음 보는 코드라..
잉텔
보통 배열배울때쯤 Arrays라던지 System.arraycopy 이런거 다 알려주지 않나?
센타까
흠... 자바는 뭔가 기본적으로 중복 제거 될 것 같은데...
나도 랜덤은 자주 안쓰는데 지금 대충 만들어보니 되네.
int main()
{
int randomNum[3][3];
int comp = 0;
int i,j,temp;
for(i = 0; i < 3; i++)
{
for(j = 0; j < 3; j++)
{
while(1)
{
temp = rand() % 9;
if(!(comp & (1
센타까
뭐야 왜 짤려
최지로
와..되게 나도 이렇게 금방금방 생각나면 좋을텐데
솔직히 지금 정답을 본다고 해도 하나도 이해가 안되서 미치겠다
센타까
아 댓글 자체가 안달린다. 저거 comp & 뒤쪽에 비트 시프트 들어있는데 그거만 들어가면 두줄이라도 짤리네 ㅋ
자바로 해볼라고 인텔리j깔았는데 프로젝트 만들줄 몰라서 답답하다 ㅋㅋ
최지로
계속 지우고 쓰고 지우고 쓰고 반복중
이래 어려운게 맞나..ㅠㅠ
대충 느낌이라도 알아야지 질문을 제대로해서 도움이라도 받을텐데
센타까
C로 만든거라도 참고하려면 짤림테스트 게시물 보렴. 댓글로는 < 두개 넣으면 뒤로 다 짤리드라
아리성애자
[0,8] boolean 배열을 만들고
임의의 수를 뽑았을 때 boolean[random.nextint()]가 true면 continue, false면 해당값 true로 바꾸고
배열끝까지가면 종료