Day06 - Quiz를 풀어봅시다

2021. 2. 22. 11:27JAVA 공부/Quiz

오늘도 어김없이 돌아온 Quiz !

 

같이 한번 풀어볼까요?

 

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

 

먼저 랜덤변수를 만들어 주는데, Math.random() * 8 을 하면 0 ~ 7 까지의 수죠.

그래서 +2를 해서 2 ~ 9 까지를 만들어 주었습니다.

int num = (int)(Math.random() * 8) + 2;

그 외는 다 아실거라 생각하고 따로 설명하지 않겠습니다.

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

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

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

- 50 ~ 100 까지 두 수의 합

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

for 문 안에서 int 형 말고도 다른 타입으로 선언이 가능합니다.

이렇게 풀어 볼 수 있었습니다. 결과값은 한번에 출력 했어용 위에 5개

 

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

먼저, 두 정수를 입력받아 줍니다.

그리고, 3가지의 경우가 있죠

a == b , a > b, a < b

각각의 경우를 생각해서 코드를 작성해 줍시다

작은 수에서 큰 수를 향해 값을 증가시키면서 더해주는 코드입니다.

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

이렇게 해결할 수 있는데요.

저는 삼항 연산자가 중첩이 되면 if else if 문이 더 낫다고 생각합니다 (개인적인 의견)

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

출제 의도는 shuffle 인거 같습니다. swap을 생각을 해두고

배열에 들어갈 index를 랜덤으로 뽑아줍니다 -> int r = (int)(Math.random() * arr.length);

그 후 스왑을 해주면 됩니다.

int temp = arr[i];

arr[i] = arr[r];

arr[r] = temp

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

그 후 앞에 선택된 3개의 배열을 선택해서 새로운 배열에 옮겨 담습니다.

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단까지 세로로 출력 ( 중첩 반복문 )

중첩 반복문에서 i 와 j 의 위치를 바꾸면 이렇게, 뽑을 수 있습니다.

 

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

이렇게 출력을 하기

딱히 다른 방법이 생각이 안나네요 ...

결과 값은 같으나, 맞는지 잘 모르겠네요

'JAVA 공부 > Quiz' 카테고리의 다른 글

Day08 - Quiz를 풀어 봅시다  (0) 2021.02.24
Day07 - Quiz를 풀어봅시다  (0) 2021.02.23
Day05 - Quiz 를 풀어 봅시다  (0) 2021.02.19
Day04 - Quiz를 풀어봅시다  (0) 2021.02.19
Day03 - Quiz 를 풀어봅시다  (0) 2021.02.17