2021. 2. 22. 11:27ㆍJAVA 공부/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 |