목차 문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 출력 각 테스트 케이스에 대해 P를 출력한다. 풀이 처음에는 아..
목차 문제 X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, 그중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오. 입력 입력은 총 28줄로 각 제출자(학생)의 출석번호 n(1 ≤ n ≤ 30)가 한 줄에 하나씩 주어진다. 출석번호에 중복은 없다. 출력 출력은 2줄이다. 1번째 줄엔 제출하지 않은 학생의 출석번호 중 가장 작은 것을 출력하고, 2번째 줄에선 그다음 출석번호를 출력한다. 풀이 자바로 풀 땐 스트림으로, 파이썬으로 풀 땐 제출한 사람을 하나씩 지워가며 풀었던 문제이다. 자바스크립트로 풀 때는 큰 의미는 없지만 두 가지 방식으로 풀..
목차 순서대로 배우는 건 능률이 좋게 느껴지지 않아서, 알고리즘 풀이로 정방향으로 배우는 동시에 잘 짜인 코드를 바탕으로 리버스 엔지니어링(?)으로 배우기로 했다. 일종의 어깨너머 배우는 느낌인데, 뭐 하여간 그렇다. 오늘 새로 배운 키워드는 제목에 쓰여있듯이 async, promise, await, then, process이다. 가능하면 예를 하나씩 들어가며 정리하도록 하자. async 'async' 키워드는 이름에서 추측할 수 있듯이, 비동기 함수를 선언할 때 사용한다. 해당 키워드가 붙은 함수는 암묵적으로 'promise'를 반환하게 된다. async function doSomething() { // ... Promise 반환 } Promise Promise는 자바스크립트에서 비동기 작업의 완료 여..
목차 문제 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 들어있다. 도현이는 앞으로 M번 공을 바꾸려고 한다. 도현이는 공을 바꿀 바구니 2개를 선택하고, 두 바구니에 들어있는 공을 서로 교환한다. 공을 어떻게 바꿀지가 주어졌을 때, M번 공을 바꾼 이후에 각 바구니에 어떤 공이 들어있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (1 ≤ N ≤ 100)과 M (1 ≤ M ≤ 100)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐서 공을 교환할 방법이 주어진다. 각 방법은 두 정수 i j로 이루어져 있으며, i번 바구니와 j번 바구니에 들어있는 공을 교환한다..
목차 문제 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 또, 1번부터 N번까지 번호가 적혀있는 공을 매우 많이 가지고 있다. 가장 처음 바구니에는 공이 들어있지 않으며, 바구니에는 공을 1개만 넣을 수 있다. 도현이는 앞으로 M번 공을 넣으려고 한다. 도현이는 한 번 공을 넣을 때, 공을 넣을 바구니 범위를 정하고, 정한 바구니에 모두 같은 번호가 적혀있는 공을 넣는다. 만약, 바구니에 공이 이미 있는 경우에는 들어있는 공을 빼고, 새로 공을 넣는다. 공을 넣을 바구니는 연속되어 있어야 한다. 공을 어떻게 넣을지가 주어졌을 때, M번 공을 넣은 이후에 각 바구니에 어떤 공이 들어 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (1 ≤ N ≤..
목차 문제 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)x100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로 ..
목차 문제 흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. "Quadrant n"은 "제 n사분면"이라는 뜻이다. 예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다. 점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다. 입력 첫 줄에는 정수 x가 주어진다. (−1000 ≤ x ≤ 1000; x ≠ 0) 다음 줄에는 정수 y가 주어진다. (−1000 ≤ y ≤ 1000; y ≠ 0) 출력 점 (x, y)의 사분면 번호(1..
목차 자바스크립트 문법에 익숙해지기 위해 가장 쉬운 알고리즘 문제를 풀었다가 당황을 했다. 첫 번째는 Node.js로 실행하면 내 입력을 기다리지 않고 프로그램을 종료시켜 버렸기 때문이고, 두 번째는 파이썬과 비교했을 때 코드의 길이가 굉장히 길고 한눈에 들어오지 않았기 때문이다. 첫 번째 문제는 이전 글에서 해결했으니, 이번엔 알고리즘의 풀이를 보면서 한 줄씩 읽으며 무슨 뜻인지 파악해야겠다. const 먼저, 문제의 풀이를 보면 아래와 같다. const rl = require('readline').createInterface({ input: process.stdin, output: process.stdout }); rl.question("", (line) => { const [a, b] = line...
목차 console.log() vs. alert() 두 함수는 모두 정보를 출력하는 데 사용되는 함수이다. 하지만 몇 가지 차이점이 존재하는데, 크게 세 가지로 나누어서 정리하자. Output Location 가장 크고 분명한 사실은 두 함수의 출력 위치가 다르다는 사실이다. console.log() 해당 함수는 메시지를 터미널이나 브라우저의 콘솔에 출력한다. 여기서 콘솔이란 예를 들자면 크롬 개발자도구의 일부이다. alert() 해당 함수는 브라우저에서 모달 대화상자를 띄워 표시한다. 기본적으로 브라우저의 중앙에 위치해 사용자의 주의를 끈다. Purpose 위에서 짐작할 수 있듯이 두 함수는 그 목적이 다르다. console.log() 개발자의 개발 중 디버깅 및 로그 기록을 위해 사용된다. 따라서 실..
목차 자바스크립트 기본 자료형에 대해 짧게 정리! Number 따옴표나 큰 따옴표 등이 붙지 않는 숫자는 자동으로 숫자로 인식한다. console.log(1.3 + 2); 3.3 간단한 사칙연산 (+, -, *, /, %)을 제외하고도 몇 가지 복잡한 연산을 추가로 지원한다. console.log(Math.pow(2, 3)); console.log(Math.round(2.3)); console.log(Math.ceil(2.3)); console.log(Math.floor(2.3)); console.log(Math.sqrt(2)); console.log(Math.random()); 8 2 3 2 1.4142135623730951 0.6315177261112865 String 문자열은 작은따옴표(') 혹은 ..
- Total
- Today
- Yesterday
- 동적계획법
- 세계일주
- 스트림
- 알고리즘
- 야경
- BOJ
- 여행
- 유럽여행
- java
- 리스트
- Python
- 지지
- 세모
- 스프링
- spring
- Backjoon
- 기술면접
- 백준
- 세계여행
- 맛집
- Algorithm
- RX100M5
- a6000
- 유럽
- 자바
- 중남미
- 남미
- 파이썬
- 칼이사
- 면접 준비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |