# 프로그래머스/Javascript : 기초 문제 4일차

- Author: @laetipark
- Published: 2024-01-24
- Updated: 2024-03-26
- Source: http://blex.me/@laetipark/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4javascript-%EA%B8%B0%EC%B4%88-%EB%AC%B8%EC%A0%9C-4%EC%9D%BC%EC%B0%A8
- Tags: 프로그래머스, 코딩테스트, 기초문제

---

## [n의 배수](https://school.programmers.co.kr/learn/courses/30/lessons/181937)

### 문제
정수 `num`과 `n`이 매개 변수로 주어질 때, `num`이 `n`의 배수이면 1을 return `n`의 배수가 아니라면 0을 return하도록 solution 함수를 완성해주세요.

- 제한사항
	- 2 ≤ `num` ≤ 100
	- 2 ≤ `n` ≤ 9

### 소스 코드
```javascript
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = '';

rl.on('line', (line) => {
  input = line.split(' ').map(Number);
  rl.close();
}).on('close', () => {
  const answer = solution(input[0], input[1]);
  console.log(answer);
});

const solution = (num, n) => num % n === 0 ? 1 : 0;
```

## [공배수](https://school.programmers.co.kr/learn/courses/30/lessons/181936)

### 문제
정수 `number`와 `n`, `m`이 주어집니다. `number`가 `n`의 배수이면서 `m`의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.

- 제한사항
	- 10 ≤ `number` ≤ 100
	- 2 ≤ `n`, `m` < 10

### 소스 코드
```javascript
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = '';

rl.on('line', (line) => {
  input = line.split(' ');
  rl.close();
}).on('close', () => {
  const answer = solution(input[0], input[1], Number(input[2]), Number(input[3]));
  console.log(answer);
});

const solution = (num, n, m) => num % n === 0 && num % m === 0 ? 1 : 0;
```

## [홀짝에 따라 다른 값 반환하기](https://school.programmers.co.kr/learn/courses/30/lessons/181935)

### 문제
양의 정수 `n`이 매개변수로 주어질 때, `n`이 홀수라면 `n` 이하의 홀수인 모든 양의 정수의 합을 return 하고 `n`이 짝수라면 `n` 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.

- 제한사항
	- 1 ≤ `n` ≤ 100

### 소스 코드
```javascript
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = '';

rl.on('line', (line) => {
  input = line;
  rl.close();
}).on('close', () => {
  const answer = solution(Number(input));
  console.log(answer);
});


const solution = (n) => {
  let answer = 0;
  if (n % 2 === 0) {
    for (let i = n; i >= 0; i -= 2) {
      answer += i * i;
    }
  } else {
    for (let i = n; i >= 0; i -= 2) {
      answer += i;
    }
  }

  return answer;
};
```

## [조건 문자열](https://school.programmers.co.kr/learn/courses/30/lessons/181934)

### 문제
문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.

두 수가 `n`과 `m`이라면
">", "=" : `n` >= `m`
"<", "=" : `n` <= `m`
">", "!" : `n` > `m`
"<", "!" : `n` < `m`
두 문자열 `ineq`와 `eq`가 주어집니다. `ineq`는 "<"와 ">"중 하나고, `eq`는 "="와 "!"중 하나입니다. 그리고 두 정수 `n`과 `m`이 주어질 때, `n`과 `m`이 `ineq`와 `eq`의 조건에 맞으면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.

- 제한사항
	- 1 ≤ `n`, `m` ≤ 100

### 소스 코드
```javascript
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = '';

rl.on('line', (line) => {
  input = line;
  rl.close();
}).on('close', () => {
  const answer = solution(Number(input));
  console.log(answer);
});

const solution = (ineq, eq, n, m) => {
  let answer = 1;
  if (ineq === '<') {
    answer = n <= m ? 1 : 0;
  } else {
    answer = n >= m ? 1 : 0;
  }
  if (answer === 1) {
    if (eq === '!=') {
      answer = n === m ? 0 : 1;
    }
  }

  return answer;
};
```

## [조건 문자열](https://school.programmers.co.kr/learn/courses/30/lessons/181934)

### 문제
문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.

두 수가 `n`과 `m`이라면
">", "=" : `n` >= `m`
"<", "=" : `n` <= `m`
">", "!" : `n` > `m`
"<", "!" : `n` < `m`
두 문자열 `ineq`와 `eq`가 주어집니다. `ineq`는 "<"와 ">"중 하나고, `eq`는 "="와 "!"중 하나입니다. 그리고 두 정수 `n`과 `m`이 주어질 때, `n`과 `m`이 `ineq`와 `eq`의 조건에 맞으면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.

- 제한사항
	- 1 ≤ `n`, `m` ≤ 100

### 소스 코드
```javascript
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = '';

rl.on('line', (line) => {
  input = line;
  rl.close();
}).on('close', () => {
  const answer = solution(Number(input));
  console.log(answer);
});

const solution = (ineq, eq, n, m) => {
  let answer;
  if (ineq === '<') {
    answer = n <= m ? 1 : 0;
  } else {
    answer = n >= m ? 1 : 0;
  }
  if (answer === 1) {
    if (eq === '!=') {
      answer = n === m ? 0 : 1;
    }
  }

  return answer;
};
```

## [flag에 따라 다른 값 반환하기](https://school.programmers.co.kr/learn/courses/30/lessons/181933)

### 문제
두 정수 `a`, `b`와 boolean 변수 `flag`가 매개변수로 주어질 때, `flag`가 true면 `a` + `b`를 false면 `a` - `b`를 return 하는 solution 함수를 작성해 주세요.

- 제한사항
	- 1,000 ≤ `a`, `b` ≤ 1,000

### 소스 코드
```javascript
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = '';

rl.on('line', (line) => {
  input = line.split(' ');
  rl.close();
}).on('close', () => {
  const answer = solution(Number(input[0]), Number(input[1]), Boolean(input[2]));
  console.log(answer);
});

const solution = (a, b, flag) => flag ? a + b : a - b;
```
