- [JS] 특정 수를 더한 배열 출력하기2022년 05월 10일
- 슬용이
- 작성자
- 2022.05.10.:28
문제
twoSum함수에 숫자배열과 '특정 수'를 인자로 넘기면, 더해서 '특정 수'가 나오는 index를 배열에 담아 return해 주세요.
nums : 숫자 배열
target : 두 수를 더해서 나올 수 있는 합계
return : 두 수의 index를 가진 숫자 배열
예를 들어,
nums은 [4, 9, 11, 14] target은 13
nums[0] + nums[1] = 4 + 9 = 13 이죠?
그러면 [0, 1]이 return 되어야 합니다.
( 가정 : target으로 보내는 합계의 조합은 배열 전체 중에 2개 밖에 없다고 가정하겠습니다.)풀이
const twoSum = (nums, target) => { // twoSum함수에 숫자 배열과 '특정 수'를 인자로 넘기면, // 더해서 '특정 수'가 나오는 index를 배열에 담아 return! // target으로 보내는 합계의 조합은 배열 전체 중에 2개 밖에 없다고 가정한다. // i랑 j, 특정 수 지정 // if : i + j = target -> index 배열 return[i, j] for (let i=0; i < nums.length-1; i++){ for (let j=i+1; j < nums.length; j++){ if(nums[i] + nums[j] === target){ return [i, j]; } } } } console.log(twoSum([4, 9, 11, 14], 13));
처음에 놓친 것
- nums.length-1 !
- j = i + 1
⇒ 해당 부분은 i=0, j=0 / i, j < nums.length; 의 경우 if(!i = j)로 대체 가능하다
const twoSum = (nums, target) => { for (let i=0; i < nums.length; i++){ for (let j=0; j < nums.length; j++){ if(i!=j){ if(nums[i] + nums[j] === target){ return [i, j]; } } } } };
➕ JavaScript로 구구단 출력하기
구구단은 1~9단까지 존재.
i * j로 가정할 경우, i가 먼저 나열되어야 하므로 for(i)문 안에 for(j)문으로 쓸 수 있다.
아래 코드는 2단부터 나열되는 구구단이다.
for(let i=2; i<=9; i++) { for(let j=1; j<=9; j++) { console.log(i +' x ' + j + ' = ' + i*j) } }
➕➕ 구구단 더 살펴보기
JavaScript 구구단을 살펴보다가 심화학습을 찾게 되었다.
아직 모르는 부분이 있어 살펴보려 한다.
var gugu = prompt("원하는 구구단을 입력해주세요"); if(!isNaN(gugu)){ for(var i = 1; i<10; i++){ document.write(gugu+"x"+i+"="+(i*gugu)+"입니다. "); } }else{ alert("숫자가 아닙니다.") } // 출처 : <https://runcoding.tistory.com/16>
prompt()?
사용자가 텍스트 메세지를 입력할 수 있는 대화 상자를 띄우는 함수
let sign = prompt("당신의 별자리는 무엇입니까?"); if (sign.toLowerCase() === "전갈자리") { alert("와! 저도 전갈자리예요!"); }
prompt를 쓰는 방법은 다음과 같다.
sign = window.prompt(); // 빈 대화 상자를 엽니다. sign = prompt(); // 빈 대화 상자를 엽니다. sign = window.prompt("님 지금 기분 좋아요?"); // "님 지금 기분 좋아요?"가 보이는 창 오픈 sign = window.prompt("님 지금 기분 좋아요?", "네."); // "님 지금 기분 좋아요?"가 보이는 창을 띄우되 기본적으로 입력되어 있는 값은 "네."로 합니다.
isNaN() ?
isNaN() 함수는 어떤 값이 NaN인지 판별한다.
NaN은 JavaScript의 다른 모든 값과 달리 " ==, === "을 사용해 판별할 수 없다.
NaN == NaN, NaN === NaN은 false로 평가되기 때문에 NaN을 판별하는 함수 isNaN()이 사용되는 것이다.
function sanitise(x) { if (isNaN(x)) { return NaN; } return x; } console.log(sanitise('1')); // expected output: "1" console.log(sanitise('NotANumber')); // expected output: NaN
코드 다시 살펴보기
const gugu = prompt("원하는 구구단을 입력해주세요"); // gugu 변수는 "원하는 구구단을 입력해주세요"라는 메세지를 띄우는 대화상자 함수이다. if(!isNaN(gugu)){ // 만약에 gugu 대화상자를 통해 전달받은 값이 숫자이면 for(var i = 1; i<10; i++){ // for 문을 시작한다. document.write(gugu+"x"+i+"="+(i*gugu)+"입니다.</br>") // for 문은 대화상자를 통해 전달받은 숫자 값을 i로 구구단 i단을 출력한다. }; }else { alert("숫자가 아닙니다.")}; // 만약 전달받은 값이 숫자가 아니면 "숫자가 아닙니다." 알림창을 띄운다.
카타(Kata)는 솔로 또는 쌍으로 연습 된 움직임의 자세한 패턴을 설명하는 단어
'Code Practice' 카테고리의 다른 글
[JS] key값으로 value 값 찾아서 반환하기 (0) 2022.05.22 [JS] 중복되는 시작 단어(Prefix) 찾기 (0) 2022.05.14 [JS] 문자 뒤집기 (0) 2022.05.14 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)