[JavaScript] 기본 문제 풀이 1

1.별별별



fuction answer(num) {
let result = "";

for (let i=0; i <num; i++)
result +="*";
}

쉬운 문제지만 난 틀렸다^^
num이 i보다 작을때 for문 반복하면서 input 값을 넣어 * 출력한다.


2. 두 수 사이 숫자

function answer(x,y){
let result = [];

if (x>y){ 
for(let i=y; i <= x; i++){
result.push(i);
  }
 } else {
for(let i = 0; i <= y; i++){
result.push(i);
  }
 }
return result;
}

2-1. 두 변수를 swap하는 법

두번째 방법 풀이는 swap이라는 것을 통해 쉽게 순서를 바꿀 수 있다.
입력 값 첫번째 방법(3,4,5,6,7)이라면 오름차순으로 숫자가 배열이 되서 간단히 풀수있다.
하지만 앞 숫자보다 뒤 숫자가 크면 swap을 통해 각각 다른 매개변수에 저장해주고 문제 풀이를 한다.

function answer(x,y){
let result = [];

if(x>y){
let t = x;
x=y;
y=t;
}
for(let i = 0; i <= y; i++){
result.push(i);
  }
return result;
}

1. temp 변수를 이용한 방법

(내용물이 섞이지 않게 컵 안에 내용물을 바꾸는 느낌으로 생각하면 된다.)

let
  a = 'a',
  b = 'b',
  temp;

temp = a;
a = b;
b = temp;
console.log('a: ' + a + ', b: ' + b); // 'a: "b", b: "a"'

2. 덧셈/뺄셈 연산자를 이용한 방법

(number 타입의 값을 바꿀 때 사용할 수 있는 방법이다.)

let a = 123;
let b = 456;

a = a + b; // 123 + 456 = 579
b = a - b; // 579 - 456 = 123
a = a - b; // 579 - 123 = 456

3. 구조 분해 할당을 이용한 방법

ES6에 추가된 구조 분해 할당(Destructuring_assignment)을 이용해 swap하는 방법이다.
익스플로러에선 지원하지 않지만 많은 사람들이 추천하고 있다!

let a = '123';
let b = 456;

[a, b] = [b, a];

3. 반 평균

function answer(score) {
let average=0;

for(let i = 0; i < score.length; i++){
average+=score[i];
}
average/score.length;
average = average.toFixed(2);

return average;
}

+= , /= 사용이 익숙치 않아 중간 중간 코드가 작동하지 않았다.
toFixed(?) 사용하여 몇번째 반올림 처리해줄지 정한다.


4. 핸드폰 판매

function answer(employee){
let employee_id;

let max=0;
for(let i=0; i < employee.length; i++){
if(employee_id[i] < max){
max=employee_id[i];
employee_id=i+1;
}
}
return employee_id;
}
  1. let max=0; --> 변수를 사용한다 --> 0이라고 초기화 해놔야 나중에 비교할때 큰 값이 업데이트 된다.
  2. employee[ i ] max --> 0의 인덱스는 3이므로 max 3이라는 값을 갖는다.
  3. 3의 인덱스는 0이므로 +1하면 1 인덱스는 3이다. 쭉쭉 값을 넣어 for문으로 비교했을때 input의 9번째 3의 인덱스가 출력된다.

5.무한 뺄셈



function answer(s,e){
let sequence=[];

sequence.push(s);
sequence.push(e);

let sum;
while(1){
sum = s - e;
s = e;
e = sum;

if(e<0)break;
sequence.push(e);
}
return sequence;
}
63303-3
sesum
/sesum
//sesum
///sesum

이 문제도 swap 매개변수를 이용해 푸는 문제이다.
1. sum 임수변수를 사용하고 while(1) true 이므로 무한루프를 돈다.
2. 위에 표를 보면 swap 매개변수 방법이 이해가 갈것이다.
3. 3 < 0 false 이므로 sequence.push(e) 새로운 값을 e에 넣어 계속 반복해라!
4. e = sum; 이므로 -3 < 0 true 이므로 break한다.

좋은 웹페이지 즐겨찾기