본문 바로가기

분류 전체보기

(335)
백준2960번 - 에라토스테네스의 체 자바스크립트(Node.js)풀이 문제 에라토스테네스의 체는 N보다 작거나 같은 모든 소수를 찾는 유명한 알고리즘이다. 이 알고리즘은 다음과 같다. 2부터 N까지 모든 정수를 적는다. 아직 지우지 않은 수 중 가장 작은 수를 찾는다. 이것을 P라고 하고, 이 수는 소수이다. P를 지우고, 아직 지우지 않은 P의 배수를 크기 순서대로 지운다. 아직 모든 수를 지우지 않았다면, 다시 2번 단계로 간다. N, K가 주어졌을 때, K번째 지우는 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ K < N, max(2, K) < N ≤ 1000) 출력 첫째 줄에 K번째 지워진 수를 출력한다. 문제유형 수학 구현 정수론 소수 판정 에라토스테네스의 체 에라토스테네스의 체를 몰라도 문제만 잘 읽으면 풀 수 있는 문제이다..
백준1038번 - 감소하는 수 자바스크립트(Node.js)풀이 문제 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 출력하는 프로그램을 작성하시오. 0은 0번째 감소하는 수이고, 1은 1번째 감소하는 수이다. 만약 N번째 감소하는 수가 없다면 -1을 출력한다. 입력 첫째 줄에 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 N번째 감소하는 수를 출력한다. 문제유형 브루트포스 알고리즘 백트래킹 백줄이 넘어가는 정말 보기힘든 코드로 풀고있다가 너무나도 신박한 풀이를 발견하였다. 이 풀이를 nodejs 코드로 변환하고 산책을 하면서 코드를 이해해보았다. encrypted..
백준10830번 - 행렬 제곱 자바스크립트(Node.js)풀이 문제 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다. 입력 첫째 줄에 행렬의 크기 N과 B가 주어진다. (2 ≤ N ≤ 5, 1 ≤ B ≤ 100,000,000,000) 둘째 줄부터 N개의 줄에 행렬의 각 원소가 주어진다. 행렬의 각 원소는 1,000보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄부터 N개의 줄에 걸쳐 행렬 A를 B제곱한 결과를 출력한다. 문제유형 수학 분할 정복 분할 정복을 이용한 거듭제곱 선형대수학 행렬을 n제곱시키는 (개념적으로는)간단한문제. 하지만 시간 제한(1초)에 비해 B값이 커서 최적화를 시켜야 한다. 보통 행렬의 제곱을 최적화하는 연산은 행렬..
아두이노 33 BLE nano sense BLECharacteristic 저는 아두이노 33 ble nano sense의 기본적인 설명보다는, 제가 알고싶은 특별한 부분들만 정리하고자 합니다. 아두이노에 대해 전체적으로 궁금하시다면 아래 잘 정리된 글이 있으니 참고해주세요 Arduino NANO 33 BLE Sense 사용법 알아보기, 라이브러리 설치 안녕하세요, 메카솔루션입니다. 이름도 긴 Arduino NANO 33 BLE Sense는 최근 출시한 새로운 NA... blog.naver.com BLECharacteristic 1. 기본 메뉴얼 설명 새로운 BLE 특성을 생성한다 문법 BLECharacteristic(uuid, properties, value, valueSize) BLECharacteristic(uuid, properties, stringValue) BLEBo..
아두이노 나노(ble)-라즈베리파이(zmq)-윈도우 유니티(NetMQ) 통신 사용기기: arduino 33 nano ble 라즈베리파이4 윈도우10, 유니티2020, MongoDB 목적 아두이노의 센서 데이터를 몽고DB에 저장하고 유니티로 활용하기 위함 기본적으로 아두이노 33 nano ble은 윈도우10과의 ble통신을 지원하지 않는다. 그래서 라즈베리파이4를 게이트웨이로 활용하여 데이터를 받고자 하였다. 설계 1. 윈도우로 아두이노 빌드 2. 라즈베리에 ble통신을 위한 파이썬 코드 제작 3. 라즈베리와 아두이노간 ble통신 4. ble통신이 성공하면 라즈베리 서버에서 윈도우 클라이언트로 데이터 전송 5. 파이썬 zmq, C# NetMQ를 이용하여 라즈베리와 윈도우 유니티간 메시지 통신 6. MongoDB에 데이터 저장 7. 데이터 활용(실시간 그래프 그리기) 참고자료 라즈베..
기본 Terminal 설정 (터미널 색바꾸기, 글씨크기 조정) 시력이 안좋으셔서 라즈베리파이의 터미널을 잘 못보시는 분들이 있더라고요 그래서 그런분들을 위해 터미널의 바탕과 글씨의 색깔을 변경하고 글씨 크기를 크게 만드는 방법을 알아보았어요! 터미널의 설정을 변경하는 방법은 아래 파일 경로 (/home/pi/.config/lxterminal/lxterminal.conf)를 수정하는거에요. 위 사진은 nano 에디터를 사용한 화면이고, 수정하실떄는 sudo / su 옵션이 꼭 필요해요! ~ fontname 옵션 Monospace는 '고정폭 글꼴'이라는 뜻인데, 이 옵션 말고 다른 옵션이 있는지는 모르겠네요. 옆에 숫자는 글씨의 크기로, 이 크기가 크면 클수록 글씨크기가 커집니다! 그리고 라즈베리의 Terminal크기는 글씨크기 x geometry(아래설명) 으로 정해..
VNC Viewer로 윈도우에서 라즈베리파이 원격접속하기! 라즈베리파이, 아무리 키보드와 마우스를 원격으로 연결할 수 있어도 화면자체가 작아 PC만큼 편하게 작업할수는 없죠. 저는 7인치짜리 라즈베리파이 LCD를 보면서 작업하기에는 너무 답답해서 윈도우로 라즈베리파이를 원격으로 제어하는 방법을 찾았습니다. 그 방법은 바로 VNC Viewer를 이용하는것이에요! 설치나 다른부분은 라즈베리 파이 원격제어(VNC viewer) -1편- 설치 나는 라즈베리 파이를 조작할 때 주로 VNC를 사용한다. 과거에는 putty를 사용하기도 했지만, VNC를 ... blog.naver.com 이 블로그에 잘 정리되어있으니! 위 글 참조하시고 작업하시면 될거에요! ~~~ ~ VNC Viewer의 사용법은 매우 간단합니다! 그냥 원격으로 제어하고 싶은 파이에서 터미널을 열고 'vnc..
백준1000번 - A+B 자바스크립트(Node.js)풀이 백준에서 가장 기본적인 문제. 이 글은 문제풀이에 목적이 있다기 보다는 자바스크립트를 이용한 백준 문제풀이를 위해 작성하였다. 자바스크립트는 기본적으로 html를 조작하는 프로그래밍 언어로, 웹사이트 위에서 동작한다. 이런 자바스크립트를 Node.js를 이용해 백준같은 문제풀이를 위해 사용할 수 있는데, 앞으로 이러한 방식으로 문제를 풀이하고 정리해보고자 한다. 최근 프론트엔드 코딩테스트에 파이썬이 아닌 자바스크립트와 같은 언어로 테스트를 진행하고 있어서 프론트엔드 개발을 생각하고 있다면 Node.js로 문제풀이를 진행한다면 유리할것이다. var fs = require('fs'); var input = fs.readFileSync('/dev/stdin').toString().split(' '); var ..