연습하는것들/quiz의 예시들

Day06 - 예시들

Hesitater 2021. 8. 28. 17:37
728x90

-Math.random() 을 사용해서 2 ~ 9 까지 랜덤변수를 만들고, 해당 구구단을 세로로 출력

결과값

2~9까지 랜덤수 int dan = (int)(Math.random()*8) +2 ;

-7 ~ 100 까지 정수 중에 7의 배수를 가로로 출력 (증감식을 7씩 증가)

결과값

System.out.print( i + " " ); < - " " 빈칸 대입으로 가로 출력시 보기쉽게 하는거..

1 ~ 100 까지 중에 12의 배수를 가로로 출력

결과

System.out.print( i % 12 == 0? i + " " : "");

i 를 12로 나눈 나머지가 0? 맞으면 i + " " 아니면 ""

1 ~ 200 까지 정수 중에 9의 배수의 개수

결과값

i % 9 == 0 시 i 출력해서 확인 //

i % 9 == 0 맞으면 count +1, i 출력

-50 ~ 100 까지 두 수의 합

결과값

-A ~ Z 까지 가로로 출력 ( A의 유니코드 65, Z의 유니코드 90 )

결과값

-두 정수를 입력받고, 두 수 사이의 합을 구하시오. ( 두 수의 크기는 정해지지 않음 )

결과값

if문 안에 for문이 들어 있는데, for문 안에 삼항 연산자로 해결하는 법도 있다.

결과는 같게 나온다 삼항 연산자 이 중첩이 되서 조금 보기 힘들긴했다.

근데 천천히 보면 못 쓸만한건 아닌듯.

-배열이 들어있는 값 중에서, 절대 중복되지 않는 숫자 3개를 랜덤으로 추출하려 합니다.

_*/\_- 배열이 들어있는 값 중에서, 절대 중복되지 않는 숫자 3개를 랜덤으로 추출하려 합니다.
* arr에서 절대 값이 중복되지 않게 추출된 3개의 값을 새로운 배열을 옮겯 담으면 됩니다.
* 배열의 길이만큼 회전하고 랜덤요소를 0,1,2, index로 옮깁니다
*/ **

출제 의도는 shuffle 인거 같습니다. swap을 생각을 해두고.. 근데 솔직히 내 생각에선 잘 안됨

중간에서 결과확인

중간 결과를 보면 랜덤수에서 arr배열 있고 0~8 랜덤으로 수를뽑아

i = 0 일때 랜덤수 6 이라서 arr[0]과 arr[6]을 바꾸고
i = 1 일때 랜덤수 8 이라서 arr[1] 과 arr[8]을 바꾸고
이 방식으로 i = 8까지 바꿔서 배열을 바꾼다.

다시 돌려보면

결과값

int ran = (int)(Math.random)* arr.length ); :배열에 들어갈 index 랜덤으로뽑고

그후 스왑
int temp = arr[i];
arr[i] = arr[ran];
arr[ran] = temp;

int[] rArr = new int[3]; : 크기가 3인 배열을 선언합니다.

그후에 앞쪽에서 섞은 배열의 index 0,1,2, 배열을 선택해서 rArr배열에 넣는다.
rArr[0] = arr[0];
rArr[1] = arr[1];
rArr[2] = arr[2];
이코드를 for문으로 바꾸면
for(int i = 0; i < rArr.length; i++) {
    rArr[i] = arr[i];

이 문제 좀 생각 많이 해봐야 할듯.

- 구구단 2단 ~9단까지 세로로 출력 ( 중첩 반복문 )

결과값

 

- 구구단 2단 ~9단까지 출력 ( 중첩 반복문 ) 결과를 보고

 

결과값

출력되는 방향 생각하고  "\t" 생각 못했음..

그냥 이것 저것 때려 박다가 계속 이상한거 나와서  하나씩 출력하면서 해보았음

그리고 inner for문 끝나고 System.out.println(); 으로 단수 구별하는 거 생각 못했음

무식하게 때려박지말고 조금 생각해봅시다..