Programming/JavaScript(34)
-
비트마스크를 배열로 관리하는 bitsToArrays.js
Javascript에서 비트마스크를 쓸 일이 있을까?=====임베디드 장비에서 서버를 돌렸기 때문에, 꽤 많은 기능들은 비트마스크로 관리됐다. 이벤트가 on/off됐다던가, 장비에 연결된 장치들과 연결이 끊어졌다던가, 이런 상태들을 한번에 관리하기엔 비트마스크만한 게 없었다. 뭣보다 워낙 옛날에 C로 코드를 작성하던 아저씨들이 만든 코드라, 비트마스크를 쓸 일이 상당히 많았다.여러개의 Boolean값을 사용하고 있다면, 비트마스크를 통해서 메모리 효율을 늘릴 수 있을 것이다. 비트마스크가 효율적이긴 한데...=====event_status라는 비트마스크에 n번째 비트가 설정되었는지 확인하려면, 다음과 같이 작성하면 된다. ```if ((event_status & (1
2019.01.09 -
프로그래머스/무지의 먹방 라이브(진행중)
[코드프로그래머스/무지의 먹방 라이브](https://programmers.co.kr/learn/courses/30/lessons/42891?language=javascript) 초안-----일단 되는대로 만들어봤다. 정확성 테스트조차 몇몇개는 실패다. = ㅅ=효율성 테스트는 모두 시간초과하는 수준. 탐색하는 로직을 개선하거나, 혹은 메모리를 사용해서 탐색이 필요없게끔 수정이 필요하다. ```//food_times의 모든 값이 0인지 감지하는 함수function isAllValueZero (param_array) { var isAllZero = true; for(var i=0; i 0) { isAllZero = false; } } return isAllZero;} //food_times의 다음 index..
2019.01.03 -
프로그래머스/탑
문제 설명수평 직선에 높이가 서로 다른 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다른 탑으로 송신되지 않습니다.예를 들어 높이가 6, 9, 5, 7, 4인 다섯 탑이 왼쪽으로 동시에 레이저 신호를 발사합니다. 그러면, 탑은 다음과 같이 신호를 주고받습니다. 높이가 4인 다섯 번째 탑에서 발사한 신호는 높이가 7인 네 번째 탑이 수신하고, 높이가 7인 네 번째 탑의 신호는 높이가 9인 두 번째 탑이, 높이가 5인 세 번째 탑의 신호도 높이가 9인 두 번째 탑이 수신합니다. 높이가 9인 두 번째 탑과 높이가 6인 첫 번째 탑이 보낸 레이저 신호는 어떤 탑에서도 수신할 수 없습..
2019.01.03 -
프로그래머스/폰켓몬
문제 설명당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다.첫 번째(3번), 두 번째(1번) 폰켓몬을 선택첫 번째(3번), 세 번째(2번) 폰켓몬을 선택첫 번째(..
2019.01.03 -
프로그래머스/다리를 지나는 트럭
트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. ※ 트럭이 다리에 완전히 오르지 않은 경우, 이 트럭의 무게는 고려하지 않습니다. 답안은 접어놨습니다. 한참을 고민하면서 낑낑거리다가 풀긴 풀었는데, 이상하게 테스트1에서 경과시간이 초과됐다. console.log를 찍어봐도 정확한 원인을 몰라서, 몇시간동안 머리를 쥐어뜯었다. 결국 다른사람의 답안을 봤지만, 딱히 차이점을 발견하진 못했다.function solution(bridge_length, weight, truck_weights) { var..
2019.01.02 -
Meteor.js의 QuickStart를 따라해봤다
Meteor의 QuickStart를 따라해봤다Meteor는 nodeJS기반의 서버 프레임워크로, javascript만을 이용해서 백엔드와 프론트엔드를 모두 작성할 수 있다는 장점이 있다. MongoDB로 설정하기도 쉽고, VueJs/AngularJS/ReactJS 등의 프론트엔드 프레임워크를 올리는 가이드도 잘 되어있다. 예전에도 ReadTrends에서 읽고 따라한 적은 있었지만, 최근에 nodeJS 관련해서 뒤적거리다 생각이 난 김에 다시 한번 QuickStart를 따라해보기로했다. 이하는 개인적으로 진행한 내역을 기록한 사항이므로, 사족이 없는 가이드는 Meteor.JS QuickStart 페이지를 참조하자. Chocolatey의 설치(윈도우)윈도우를 사용해서 설치하는 경우에는 Chocolatey를 ..
2018.12.27