0501-WebVR

제목을 WebVR로 한 이유는 !!!

제일 공부해야 되는 놈이… 오늘은 무조건 webVR관련 공부를 하기 위해서다

WebVR 브라우저에서 가상현실을 제공해주는 어떻게?

vr과 ar이란 가상현실 증강현실 가상현실 말 그대로 없는 세계를 구축하는 것이고 , 증강현실은 실제 있는 것에 덧 붙이는 것이다 보통 카메라 ,hud같은 것이 예 :D

three.js란 webGL
three.js
3차원을 표현하는 라이브러리
대표적으로 3가지

  • Scene, 화면
  • Camera, 카메라
  • renderer 렌더링

aFrame
threeAr.js

MDN_WEBVR_API

MDN은 답입니다.
-ㅇ MDN WEBVR을 달달 봅시다.

기타링크들
*mozVR

DailyAlgorithm

  • Programmers Level 02개
  • Codiltiy 0702

펠린드롬

내 풀이…
for 문 무려 3개

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
function longest_palindrom(s){

let inputStringLength = s.length;
let maxLength = 1;
const lengthCheckMethods = {
0: (length)=> length===0,
1: (length)=> length>=1
}
debugger;
for(let i =0; i<=inputStringLength; i++){
if(i<2){
if(lengthCheckMethods[i](inputStringLength)) maxLength===i
}
else{
for(let j=0; j<=inputStringLength-i; j++){
for(let k=0; k<i/2; k++){
if(s[j+k]!==s[j+i-k-1])break;
if((i-2*k-1)<=2){
maxLength=i
j=inputStringLength-i+1
}
}
}
}
}
return maxLength;
}

다른 사람의 풀이 재귀로

  1. reverse한 거랑 같으면 바로 리턴
  2. 아닌 경우
    0-s.length, 1-s.length 하나씩 빼준 것만 해도 재귀니까 계속 순차적으로 돌아가는 구나 :D 와 !! 감탄

다른 분들이 대체로 풀이가 나보다 간단한 이유 palindrom자체를 s.split("").reverse().join("") 바로 요렇게 처리해서 비교 나는 for문을 돌아서 끝값씩 순차적으로 비교하면서 오는 방식인 반면
내장 메소드를 활용하면 훨씬 직관적 + 한번에 처리할 수 있는 방법 없나 고민을

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
32
function longest_palindrom(s){
// 함수를 완성하세요
if (s === s.split("").reverse().join("")) {
return s.length;
} else {
var A = longest_palindrom(s.substring(0, s.length-1));
var B = longest_palindrom(s.substring(1, s.length));
return Math.max(A, B);
}
}

요렇게 푸신 분도
위에 풀이 처럼 maxLength를 구하는 부분이니까 뒤에서 부터 구하는 것이 나을지도 :D

function longest_palindrom(s){
var result = 0;
var sumtext = '';
var reverstext = '';
// 함수를 완성하세요

for (var i = 0; i < s.length; i++) {
sumtext ='';
for (var j = i; j < s.length; j++) {
sumtext += s[j]
reverstext = sumtext.split('').reverse().join('');
if (sumtext === reverstext && sumtext.length > result) {
result = sumtext.length;
}
}
}
return result;
}

하샤드 수

답 맞췄다고 바로 풀이 보지 말고 잘 통과하면 -> refactoring

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 const TEN = 10;
let digits = 0;
while(n>=TEN**digits){
digits+=1
}
let copyN = n;
let sumDigits = 0;
for(let i =digits; i>0; i--){
sumDigits += parseInt(copyN/(TEN**(i-1)))
copyN=copyN%(TEN**(i-1))
}
//제일 큰 자리수 구하는 과정이랑
// 각 자리수의 합 구하는 과정 한 꺼번에 처리할 수 있었다 !!!
return n%sumDigits===0;
}
// 처음생각한 야메 아이디어 문자열 -> 각 자릿수의 합 방법도 괜찮 :D 주어진 소스 활용 잘 하는 것이니까 뭐

Codility 07-02

Dom

Dom기본

복잡한 DOM을 쉽게 탐색하기 위해서 브라우저는 DOM API를 제공합니다. document라는 dom의 최상위 노드에 접근해서
document. -> dom.method(querySelector, getElementById …)등등을 활용하여 dom 을 조작합니다.

QuerySelector는 안에 css Selector를 사용하여 node들을 찾습니다.
css selector

ETC

1
2
3
git rm -r --cached node_modules
git hub에 올라간 node_modules제거하기
node_modules

TIL의 너무 많은 것을 정리하려고 보니 정체성이 없어지고 있다… 카테코리를 좀 분류해야 할까?.?

  • 코드스쿼드
  • dailyAlgorithm
  • project
    – naverHackday
    – peeker
  • Theory Study MDN 공부
  • Mooc
    – BoostCourse

너무 많아지는데

오늘의 링크 줍줍

nhn_weekly_fe
css_gradient

피드

토일월화… 4일 반복되서 이제 할 말이 없음… 난 동물같은 인간인가 보다 남들과 함께 할 때 아니면 스스로 공부를 잘 못하는