티스토리 뷰

반응형

 

369게임을 응용해서.

 

 

1. 3의 배수에서 '박수' 아니면 '통과' 

// 1부터 369 사이의 자연수에서 3으로 나누어 0으로 떨어지면 '박수' 아니면 '통과' 라고 출력한다.
        
    function 삼육구게임(n) {
        if ( n % 3 == 0) {
            console.log('박수');
        } else {
            console.log('통과');
        }
    }

 

 

1. 3의 배수에서 '박수', 9의 배수에서 '박수 박수' 아니면 '통과' 

// 9로 나누어 0으로 되면 박수두번치고 3으로 나누어 0으로되면 박수를 한번친다. 둘다해당이 안되면 통과

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

여기까지는 했다. 이것도 잘했다며 손뼉 쳤는데,

 

 

 

진짜 369게임은 어떻게 만들죠..? if 문으로만 만들 수는 없나? 

 

 

// function 삼육구게임(n) {
     if (n ) {
         if (n % 10 == 3 || n % 10 == 6 || n % 10 == 9) {
             console.log('박수');
         } else if 
     }
 	}

한참 고민하다가.  저기서 멈췄다.. 사고 회로가 딱 막혔다.. 더 고민을 했지만 끝내 구글링을 했다

여러 가지 답이 있었는데 제일 깔끔하고 다양한 방법이 있는 답안으로 가져왔다. 

 

 

       function 삼육구게임(num) {

// 그냥

            if(num % 10 == 3 || num % 10 == 6 || num % 10 == 9) {
                console.log('박수');
            } else {
                console.log('통과');
            }



// 박수여러번

           let 박수 = '';           

            for(let i = 0; i < String(num).length; i++) {
                if(String(num)[i] == '3' || String(num)[i] == '6' || String(num)[i] == '9') {
                    박수 = 박수 + '박수';
                }
            }
            console.log(박수 == '' ? '통과' : 박수);



// for없이 박수여러번

let 박수2 = String(num).replace(/[3,6,9]/g,"박수").replace(/[0-9]/g,"");

console.log(박수2 == '' ? '통과' : 박수2);

}​

 

첫 번째 코드가 그나마 내가 하려고 했던 거지만, 박수를 두 번나 오는 것까지 짜지를 못하겠다...

두 번째 코드가 내가 원했던 코드였던 것 같다.   나는 지금 절대 짤 수 없는..  저런 논리가 내 머리에 들어오는 날은 언제일까?

 

마지막 부분은 이해가 안 된다. 아직 배우지 않은 부분들이나, 깔끔해서 이해하고 싶었다.

하지만 이러다가 토끼굴에 들어갈 것 같아서 우선은 그냥 넘어가려고 한다. 

 

내가 적어도 지금 지키려고 하는 것은 '완벽한 이해'가 아닌, '코딩을 즐기는 마음가짐'이다. 

뭐든 빠르고 효율 적으로 하는 마음이 과도하니, 나에게 필요한 마음가짐을 맞추는 게 필요하다. 

 

하지만 아예 이해를 안 하겠다는 소리는 아니다. 이 문법을 배우는 날이나, 내가 조금 준비가 되었을 때 다시 돌아와서 공부하려 한다. 

 

이게 현명하지 않은 방법일 수도 있겠지만, 좋은 사고인 것은 맞는 것 같다. 

 

좋은 사고를 가지자~!

 

 

Reference: 애플 코딩 '게시판'

반응형