if else 개념이 아직 헷갈리는 것 같아서 심화문제를 더 풀어봤다

풀이 및 해설은 아래 참고!

 


 

 

문제 1

Q1. 철수는 369게임을 더럽게 못한다

 

실제 369게임 말고 약간 쉽게 각색해서 '3의 배수에서' 박수를 치면 되는 게임을 하고 있다

 

근데 철수가 수학에 좀 약한 친구라.... 숫자가 3의 배수인지 파악하기 힘든 관계로

프로그래밍으로 이 문제를 해결하려고 한다

 

어떤 숫자를 함수 안에 집어넣으면 박수를 쳐야할지 말아야할지 판단해주는 함수를 만들어보자!

 

 

풀이

- 내친김에 369 게임기를 만들어봤다 ㅋㅋ (디자인은..따로 안함)

- 3의 배수를 입력하면 박수를 쳐주고, 아닌 경우엔 실패했다는 문구가 나온다 (3의 배수는 3으로 나눴을 때 나머지가 0인 것)

<input type="number" id="삼육구">
<button type="submit" id="버튼">Play</button>

<script>
	document.getElementById('버튼').addEventListener('click', function(){
            if (document.getElementById('삼육구').value % 3 == 0) {
                alert('👏');
            } else {
                alert('You Lose');
            }
    });
</script>

 

해답

- 해답에서는 간단하게 함수만 만들어서 콘솔로그로 출력했다

function 삼육구게임(num){
  if (num % 3 == 0) {
    console.log("박수");
  } else {
    console.log('통과');
  }
}

삼육구게임(15);

// 박수  가 출력됨

 


 

문제 2

Q2. 하지만 369게임 업그레이드 버전 등장!

 

369게임 업그레이드 버전은 3의 배수에서 박수를 치는건 맞지만

9의 배수에서는 박수를 두번 쳐야한다

 

철수는 역시나 이것도 프로그래밍으로 이 문제를 해결하려고 한다 (오히려 천재일지도?)

아까 만들었던 369게임() 함수를 어떻게 고치면 될까? 

 

참고) 함수이름 작명시 맨 처음 단어는 숫자를 사용하면 안됨

참고2) 페이지 내의 다른 곳에서 자바스크립트 문법 에러가 뜨는 경우 다른 코드도 실행이 제대로 되지 않음

 

 

풀이

- 아까의 369 게임기에서 9의 배수일 경우 박수를 두 번 치도록 했다 (9의 배수는 9로 나눴을 때 나머지가 0인 것)

- 3의 배수는 9의 배수에 포함되므로, 9의 배수 조건문을 먼저 if 문으로 작성하고 3의 배수 조건문은 else if 로 작성했다.

 

<input type="number" id="삼육구">
<button type="submit" id="버튼">Play</button>

<script>
	document.getElementById('버튼').addEventListener('click', function(){
                if (document.getElementById('삼육구').value % 9 == 0) {
                    alert('👏👏');
                }
                else if (document.getElementById('삼육구').value % 3 == 0) {
                    alert('👏');
                } else {
                    alert('You Lose');
                }
    });
</script>

 

해답이 function 함수로 간단하게 작성되어있던 게 생각나서.. 그 버전으로도 써본다

function 삼육구게임(num){
  if (num % 9 == 0) {
    console.log("박수x2");
  } else if (num % 3 == 0) {
    console.log("박수");
  } else {
    console.log('통과');
  }
}

삼육구게임(18);

// 박수x2 가 출력됨

 

해답

해답은 .. 바로 위에서 작성한 거랑 일치하므로 따로 작성하지 않겠음!

 

 

 

 


 

문제 3

 

Q3. 공인중개사 시험점수를 입력하면 합격인지 알려주는 함수를 만들어보자

 

공인중개사 1차 시험은 개론, 민법 2개 과목이 있다

 

과목마다 100점 만점이지만 두 과목 합해서 120점 이상이면 합격시켜준다

다만 한 과목이 40점 미만이면 과락으로 불합격된다

 

과목 점수 2개를 파라미터로 입력하면 합격인지 불합격인지 여부를 콘솔창에 출력하는 함수를 만들어보자

 

 

풀이

- 개론이 40점 미만이거나 (or) 민법이 40점 미만인 경우에 불합격을 주었다

- 이 경우 둘 중에 하나만 과락이거나 둘 다 과락이어도 불합격이다

- 그리고 이 외에 개론 + 민법 점수가 120점 이상인 경우에는 합격을 주었다

- 위 조건에 해당하지 않는 경우에는 모두 불합격이다

<input type="number" id="개론" placeholder="개론">
<input type="number" id="민법" placeholder="민법">
<button type="submit" id="버튼">View</button>

<script>
	document.getElementById('버튼').addEventListener('click', function(){
            if ( document.getElementById('개론').value < 40 || 
                document.getElementById('민법').value < 40 ) {
                    alert('불합격');
            } else if (document.getElementById('개론').value + 
                document.getElementById('민법').value >= 120 ) {
                    alert('합격');
            } else {
                    alert('불합격');
            }
   });
</script>

 

이전 문제와 같이 해답과 동일한 형식으로도 풀이해보았다

function 합격조회(a, b){
  if (a < 40 || b < 40) {
    console.log("불합격");
  } else if (a+b >= 120) {
    console.log("합격");
  } else {
    console.log('불합격');
  }
}

합격조회(80, 40);

// 합격 이 출력됨

 

해답

이것도 해답이 완전히 똑같아서 패스!

 

 

 

 


 

TIL 끝!