알고리즘 49

<백준> 11654번: 아스키 코드

🤖 문제 https://www.acmicpc.net/problem/11654 11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 const fs = require("fs"); const N = fs.readFileSync("/dev/stdin").toString().trim(); console.log(N.charCodeAt(0)); 1. (line 4) 문자열 프로토타입 메서드인 charCodeAt()을 활용하여 문자열을 아스키 코드로 변환하였습니다.

유물/└ 백준 2022.01.16

<Book> 알고리즘 도감

🏅 다양한 알고리즘의 절차를 그림으로 쉽게 이해할 수 있음 (분량: 216쪽, 난이도: ★☆☆☆☆) 알고리즘 사례를 많이 접해보고 싶어서 읽게 되었습니다. 기본적인 정렬, 탐색 알고리즘부터 보안 관련 알고리즘까지 소개되어 있습니다. 알고리즘의 처리 순서를 그림으로 하나하나 풀어서 설명하기 때문에 이해하는데 많은 도움이 됩니다. 보안 알고리즘이 별도의 주제로 다루어져 있어서 알고리즘의 활용 분야를 넓은 시각으로 볼 수 있었습니다. 알고리즘, 자료구조를 처음 접하거나 머리 속에 확실한 이미지로 기억하고 싶은 분들께 추천드립니다. 1/13 ~ 1/15 http://www.yes24.com/Product/Goods/58290453 알고리즘 도감 - YES24 앱과 함께 직관적으로 배우는 알고리즘 학습서!이 책은..

<백준> 1065번: 한수

🤖 문제 https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 풀이 const fs = require("fs"); const N = +fs.readFileSync("/dev/stdin").toString().trim(); function isAnswer(num) { const numStr = `${num}`; return num < 100 || +numStr[0] - +numStr[1] === +numStr[1] - +numStr[2]; } let co..

유물/└ 백준 2022.01.13

<Book> Hello Coding 그림으로 개념을 이해하는 알고리즘

🏅 가벼운 마음으로 알고리즘에 입문하기 좋음 (분량: 307쪽, 난이도: ★☆☆☆☆) 바로 전에 학습한 자료구조 서적에 비해 난이도는 낮습니다. 순서를 반대로 할 걸 그랬습니다. 깊이있는 이해보다는 알고리즘의 기초적인 개념과 응용 분야를 소개하는 정도로 나옵니다. 구체적인 구현이 대부분 생략돼 있는 것이 아쉬웠습니다. 그림과 함께 이해하기 쉬운 비유를 들기 때문에 알고리즘의 윤곽을 그릴 수 있습니다. 알고리즘을 처음 시작하시는 분들에게 추천드립니다. 1/10 ~ 1/12 http://www.yes24.com/Product/Goods/37885448 Hello Coding 그림으로 개념을 이해하는 알고리즘 - YES24 알고리즘은 쉽게 말해 어떤 문제를 해결하기 위한 명령을 모아 놓은 것이다. 이 책에서 ..

<백준> 4673번: 셀프 넘버

🤖 문제 https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 풀이 const N = 10000; function d(num) { const numArr = num.toString().split(""); return num + +numArr.reduce((pre, cur) => +pre + +cur); } let numGenArr = []; for (let i = 1; i < N; i++) { num..

유물/└ 백준 2022.01.11

<백준> 4344번: 평균은 넘겠지

🤖 문제 https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 풀이 const fs = require("fs"); const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n"); const N = +input[0]; for (let i = 1; i < N + 1; i++) { let scoreArr = input[i].split(" "); let sum = 0; let average; let averageRatio; let highScoreStudent = ..

유물/└ 백준 2022.01.10

<백준> 8958번: OX퀴즈

🤖 문제 https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 풀이 const fs = require("fs"); const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n"); const N = +input[0]; for (let i = 1; i < N + 1; i++) { let sum = 0; let addValue = 0; for (const val of..

유물/└ 백준 2022.01.10

<TIL> 220110 알고리즘, 프로토타입, useState

🌱 { 알고리즘 } 알고리즘은 어떤 일을 하기 위한 명령의 집합입니다. 이진 탐색은 정렬된 리스트를 입력 받고, 리스트에 원하는 요소가 있으면 그 요소의 위치를 반환합니다. 알고리즘의 속도는 시간이 아니라 연산 횟수가 어떻게 증가하는지로 측정합니다. 배열에서는 모든 요소의 주소를 다 알수 있기 때문에 데이터에 임의 접근할 수 있습니다. 배열은 읽기가 빠르고, 연결 리스트는 삽입과 삭제가 빠릅니다. { 자바스크립트 } 프로토타입 자바스크립트는 프로토타입 기반의 객체지향 프로그래밍 언어입니다. 프로토타입과 생성자 함수는 단독으로 존재할 수 없고 언제나 쌍으로 존재합니다. 프로토타입 체인의 최상위에 위치하는 객체는 언제나 Object.prototype입니다. 프로토타입 체인은 상속과 프로퍼티 검색을 위한 메커..

클래스/└ TIL 2022.01.10

<백준> 1546번: 평균

🤖 문제 https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 풀이 const fs = require("fs"); const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n"); const inputScoreArr = input[1].split(" "); const MAX = Math.max(...inputScoreArr); let fakeScoreArr = inputScor..

유물/└ 백준 2022.01.08

<백준> 3052번: 나머지

🤖 문제 https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 풀이 const fs = require("fs"); const inputArr = fs.readFileSync("/dev/stdin").toString().trim().split("\n"); const resArr = inputArr.map((num) => +num % 42).sort(); let count = 10; for (let i = 0; i < 10; i++) { count -= resArr[i] === resArr[i+1] ? 1 : 0; } co..

유물/└ 백준 2022.01.06