Day04 - Quiz를 풀어봅시다

2021. 2. 19. 01:03JAVA 공부/Quiz

3일 째부터 쌤이 Quiz를 내주시네요 ㅎㅎㅎㅎㅎㅎㅎㅎ

못풀면 숙제가 되는거겠죠? ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ

Shit !!!!!!!!!!!!!!!!!!!!!!!!!

자 시작합니다

 

- 키가 140 이상이고 , 나이가 8세 이상이여야 놀이기구 탑승이 가능합니다.

키가 140 이상 이고(and) 나이가 8세 이상이다 -> cm >= 140 && age >= 8

if문을 써서 쉽게 해결할 수 있죠

 

- 스캐너를 이용해서 정수를 1개 입력받고 , 0 인지 음수인지 양수라면 홀수인지 짝수인지 구분하기

여기서는 중첩 if문을 써서 문제를 해결했죠

먼저 음수 , 0 , 양수 를 구분하고 양수 중에 홀수 짝수 를 구분해야 합니다

1. 음수 , 0 , 양수 를 if else if 를 써서 구분하고

2. 양수 else 안에서 if 문을 중첩해줍니다

3. num % 2 == 0          ->       num 을 2로 나눴을때 나머지가 0 이라면 2의 배수 즉 짝수 라는 거겠죠

 

위 문제를 3항 연산자를 이용해서도 풀 수 있습니다.

- 결과 값을 보고 코딩을 해보세요 ( 메뉴는 문자열의 형태로 표현 - 배열 (x) )

이렇게 정해져 있는 메뉴를 입력하면 얼마인지 나오고 , 정해져 있는 메뉴가 아닌 걸 입력하면 없다는 걸 출력

이렇게 switch문 에 문자열을 넣어서 해결 할 수 있습니다.

 

- 정수 3개를 입력받고, 순서 상관 없이 가장 큰 값 , 중간 값, 가장 작은 값을 구분해서 출력, 단 같은 수일 경우는 고려하지 않습니다.

 

저는 이 문제를 배열을 써보고 싶어서 배열을 쓰고 배열의 위치를 바꿔주고 마지막에 Arrays.toString() 를 썻습니다.

먼저 길이가 3인 정수형 배열을 선언해주고, 값을 입력받아 줍니다.

1. 1번째 값이 2번째 값보다 클 경우

2번째 값과 3번째 값을 비교하고 서로 바꿔줍니다.

바꾼 2번째 값과 1번째 값을 다시 비교하고 바꿔줍니다.

 

2. 2번째 받은 값이 1번째 값보다 클 경우

1번째 값과 2번째 값을 바꿔줍니다.

바꾼 2번째 값과 3번째 값을 비교하고 바꿔줍니다

바꾼 2번째 값과 1번째 값을 비교하고 바꿔줍니다

이렇게 중첩 if 문을 사용 해서 해결 할 수 있었습니다.

그러면 삼항 연산자로도 풀 수 있을까요 ? 한번 해보겠습니다

JAVA 에서 삼항 연산자는 값을 반환 하기 때문에 , 배열에 값을 어떻게 대입 해줘야 할지 막혀서, 배열 index 의 값은 그대로 두고 출력 순서만 바꿨습니다.

삼항 연산자로 풀어보니, 이번 문제에 대한 효율성은 떨어지는 것 같네요

더 좋은 방법이 있을지 조금 더 고민 해보겠습니다 

 

쌤이 풀어주신 답 입니다. if 문으로 쓰셨네요

변수 max, mid, min 를 선언해서 각각 값을 넣어주고 밑에서 한번에 출력을 해주었어요

System.out.println("큰값 : " + max + ", 중간값 : " + mid + ", 최소값 : " + min);

 

- 랜덤값을 이용해 0 ~ 3 까지 랜덤 수를 발생시키고, 나오는 랜덤수를 index에 적용해서, 선택된 단어가 어느나라 언어인지 출력.

- String[] arr = {"안녕" , "hello", "사요나라", "%#$"};

이렇게 풀어볼 수 있겠네요.

Math.random() * arr.length -> 여기서 length 가 들어간 이유는 위의 배열의 길이에 따라 랜덤수를 뽑기 위해서 입니다

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

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