티스토리 뷰
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: 애플 코딩 '게시판'
'Frontend > JavaScript' 카테고리의 다른 글
[JavaScript] class와 callback 이해하기 (0) | 2022.02.02 |
---|---|
[Javascript] Array, for, forEach 이용해 문제풀기 (출석부, 구구단, 12월실적 구하기) (0) | 2022.01.18 |
[Javascript] jQuery 'append()'를 순수 자바스크립트로 작성해보자 -jQuery append() in Pure Javascript (1) | 2022.01.17 |
[Javascript] 모던 자바스크립트 deep dive 책을 구매하다. (1) | 2022.01.16 |
[Javascript] Javascript 너무어려워요 & 앞으로 공부방향 (7) | 2022.01.11 |
- Total
- Today
- Yesterday
- 프로그래머스
- 알고리즘자바스크립트
- 모두를위한컴퓨터과학
- 자바스크립트알고리즘
- cs50
- 모두를 위한 컴퓨터 과학
- GIT
- 네트워크
- 백준
- network
- reactquery
- 리액트네이티브
- React
- javascript
- github
- 자바스크립트
- 클로저
- React Query
- python
- 타입스크립트
- 자바스크립트 비동기 처리
- 무한스크롤
- 프로그래머스 자바스크립트
- 리액트
- html
- 자바스크립트 클로저
- 항해99
- 프로그래머스 베스트앨범 자바스크립트
- css
- 실전프로젝트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |