문제
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 |
댓글