2021. 2. 19. 01:03ㆍJAVA 공부/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 |