Algorithm/BaeKJoon
[JS][백준]10809_알파벳 찾기
문제 번호 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 알고리즘 분류 구현, 문자열 문제 풀이 아스키 코드를 문제풀이에 사용하였다. 문제에서 소문자만 주어진다 하였다. 그래서 문제에서 주어진 단어 S를 스트링으로 입력받았다. 그리고 스트링을 탐색하며 단어의 각 자리의 알파벳의 아스키코드에서 'a'의 아스키 코드를 뺀 값을 사용하였다.(97) for (let i = 0; i < S.length; i++) { if (answer[S.charCodeAt(i) - Number(97)] === -1) a..
[JS][백준]1065_한수
문제 번호 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 알고리즘 분류 브루트포스 문제 풀이 1이상, N보다 작거나 같은 한수의 개수를 모두 구하는 문제이다. 한 자리 수는 모두 한수 이다. // 한자리 수 는 '한수'이다. if (num.length === 0) answer++; 이후에는 등차가 달라진다면 한수가 아니라고 판단하였다. else { let difference = Number(num[0]) - Number(num[1]); for (let j = 0; j < num.length - 1; j++) {..
[JS][백준]4673_셀프 넘버
문제 번호 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 알고리즘 분류 수학, 구현 문제 풀이 문제에서 주어진 내용을 그대로 따라해서 풀이했다. 1이상 10000이하의 수 들 중에서 셀프 넘버들을 모두 찾아야 했다. 그래서 1부터 시작해서 셀프넘버가 아닌 수 들은 -1로 지워주는 방법을 선택했다. arr라는 배열에는 1부터 10000 까지의 수가 들어있는데 각각의 수 가 셀프넘버가 아니라면 -1로 바뀌게 된다. 별 생각없이 각 자리 수를 더해가면서 풀었다. ..
[JS][백준]11720_숫자의 합
문제 번호 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 알고리즘 분류 수학, 문자열, 사칙연산 문제 풀이 문제에서 주어진 숫자의 개수N 은 필요하지 않아서 사용하지 않았다. 두번째로 주어지는 숫자를 입력받아서 숫자 1개씩 number 배열에 입력받은 후 계산하였다. const readline = require('readline'); let rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); input = []; rl.on('line', function (line) { input.push(line)..
[JS][백준]1546_평균
문제 번호 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 알고리즘 분류 수학, 사칙연산 문제 풀이 const readline = require('readline'); let rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let input = []; rl.on('line', function (line) { input.push(line); }).on('close', function () { Solution(..
[JS][백준]3052_나머지
문제 번호 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 알고리즘 분류 수학, 사칙연산 문제 풀이 문제에서 주어진 숫자의 개수는 10개 이고, 숫자들은 1000이하 라고 했다. 그래서 1001크기의 배열을 생성하고, 각 숫자들을 나눈 나머지를 인덱스로 하여 개수를 카운트 하였다. let numbers = Array.from({ length: 1001 }, () => 0); for (let i = 0; i < 10; i++) { numbers[input[i] % 42]++; } 그리고 0이 아닌 숫자들의 개수를 카운트하여서 정답을 도출하였다. for (let i = 0; i < ..
[JS][백준]2577_숫자의 개수
문제 번호 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 알고리즘 분류 수학, 문자열, 사칙연산 문제 풀이 문제에서 주어진 숫자 3개 A, B, C 를 곱한다음 그 결과값을 문자열로 받아서 사용하였다. let A = Number(input[0]), B = Number(input[1]), C = Number(input[2]); let result = String(A * B * C); 다음에 각 숫자별로 몇개씩 존재하는지 새로운 배열을 생성하여서 확인하였다. JS에서 배열을 초기화 하는 방법을 처음 사용해 보았는데 Array.from 이라는 명령어를 사용하였다. A..
[JS][백준]2562_최댓값
문제 번호 2562번: 최댓값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어 www.acmicpc.net 알고리즘 분류 구현 문제 풀이 const readline = require('readline'); let rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let input = []; rl.on('line', function (line) { input.push(line); }).on('close', function () { ..