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

- Author: @laetipark
- Published: 2024-01-20
- Updated: 2024-03-25
- 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-1%EC%9D%BC%EC%B0%A8
- Tags: 프로그래머스, 코딩테스트, 기초문제

---

## [문자열 출력하기](https://school.programmers.co.kr/learn/courses/30/lessons/181952)

### 문제
문자열 `str`이 주어질 때, `str`을 출력하는 코드를 작성해 보세요.
- 제한사항
	- 1 ≤ `str`의 길이 ≤ 1,000,000
	- str에는 공백이 없으며, 첫째 줄에 한 줄로만 주어집니다.

### 소스 코드
```javascript
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = [line];
}).on('close',function(){
    str = input[0];
    console.log(str);
});
```

## [a와 b 출력하기](https://school.programmers.co.kr/learn/courses/30/lessons/181951)

### 문제
정수 `a`와 `b`가 주어집니다. 각 수를 입력받아 입출력 예와 같은 형식으로 출력하는 코드를 작성해 보세요.
- 제한사항
	-100,000 ≤ `a`, `b` ≤ 100,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(' ');
}).on('close', () => {
  console.log('a =', Number(input[0]));
  console.log('b =', Number(input[1]));
});
```

## [문자열 반복해서 출력하기](https://school.programmers.co.kr/learn/courses/30/lessons/181950)

### 문제
문자열 `str`과 정수 `n`이 주어집니다. `str`이 `n`번 반복된 문자열을 만들어 출력하는 코드를 작성해 보세요.
- 제한사항
	- 1 ≤ `str`의 길이 ≤ 10
	- 1 ≤ `n` ≤ 5

### 소스 코드
- `문자열.repeat(n)` 메서드를 통해 문자열을 `n`회 만큼 반복시킬 수 있다.
```javascript
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin, output: process.stdout,
});

let input = [];

rl.on('line', line => {
  input = line.split(' ');
}).on('close', () => {
  const str = input[0];
  const n = Number(input[1]);

  let array = '';
  for (let i = 0; i < n; i++) {
    array += str;
  }
  console.log(array);

  // 또 다른 해답
  // console.log(str.repeat(n));
});
```

## [대소문자 바꿔서 출력하기](https://school.programmers.co.kr/learn/courses/30/lessons/181949)

### 문제
영어 알파벳으로 이루어진 문자열 `str`이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.
- 제한사항
	- 1 ≤ `str`의 길이 ≤ 20
		- `str`은 알파벳으로 이루어진 문자열입니다.


### 소스 코드
```javascript
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = [line];
}).on('close', function () {
    str = input[0];
    const small = 'a'.codePointAt();
    const diff = 'a'.codePointAt() - 'A'.codePointAt();
    let result = '';

    for (let i = 0; i < str.length; i++) {
        const char = str[i].codePointAt();
        if (char < small) {
            result += String.fromCodePoint(char + diff);
        } else {
            result += String.fromCodePoint(char - diff);
        }
    }

    console.log(result);
});
```

## [특수문자 출력하기](https://school.programmers.co.kr/learn/courses/30/lessons/181948)

### 문제
다음과 같이 출력하도록 코드를 작성해 주세요.
`!@#$%^&*(\'"<>?:;`

### 소스 코드
```javascript
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.on('close', function () {
    console.log('!@#$%^&*(\\\'\"<>?:;')
});
```
