-
[TIL] 0111카테고리 없음 2024. 1. 11. 20:57
코드카타
각도기
function solution(angle) {
if (0<angle && angle<90){
return 1;
} else if (angle==90) {
return 2;
} else if (angle>90 && angle<180) {
return 3;
} else {
return 4;
}
}
&& == if 문을 이용하였다.
왜 처음에 && 안썻지..
// 좋은 풀이
return angle<90 ? 1: angle==90? 2 : angle<180 ? 3: 4;
삼항연산자를 이용해서 한줄에 풀어버리는 분
짝수의 합
for 문을 이용했다.
function solution(n) {
let answer = 0;
for (let i = 0 ; i<=n ; i ++){
if (i%2!=0){
continue;
}
else {
answer += i;
}
}
return answer;
}
// 좋은 풀이 > 반복횟수가 반으로 줄어든다.
var answer = 0;
for (let i=2; i<=n, i+=2)
answer += i;
return answer;
로컬스토리지
localstorage 속성은 현재 도메인의 로컬 저장소에 접근하게 함
로컬 저장소
웹브라우저에서 각 도메인에 대해 할당해주는 저장 공간, 데이터의 영구적인 보관이 가능하다. 5MB 의 용량이 주어진다.
데이터 보관 값은
데이터의 이름(key), 실제 값(value) 를 각각 지정한다.
데이터 타입은 string 만 가능하다.
로컬스토리지로부터 데이터 읽고 쓸때 사용하는 메소드
localStorage.setItem("key", "value")
localStorage.getItem("key", "value")
// key 의 중복은 허용되지 않는다.
localStorage.removeItem('key');
// 키값을 기준으로 데이터를 삭제할 수 있다.
sessionStorage 는 브라우저 닫으면 정보가 날아가지만
localStorage 는 브라우저 닫아도 남는다.
세션 유지에만 잠깐 사용하는 거면 sessionStorage 를 사용하는 것이 좋다.
ex) 조회 정보 등의 단발성 정보
let arr = ["a", "b"] 의 배열의 형태 같은 경우는
localStorage 는 string 형태 밖에 저장이 안되기 때문에
localStorage.setItem("arr", JSON.stringify(arr));
를 이용하여 String 형태로 저장한다.
["a","b"] 라는 문자열로 저장 된다.
사용할 때 배열로 다시 바꾸고 싶으면
console.log(JSON.parse(lacStorage.getItem("arr")));
를 이용해서 배열로 바꾼다.
# 알고리즘 특강 ( 넘 어렵다..)
1.정수 내림차순으로 배치하기
split(기준), 버블 정렬? 이중포문?
n.toString().split('').map(Number);
console.log(numArray) -> [1,1,8,3,7,2]
// 삽입정렬
for (let i=1; i<numArray.length; i++) {
for (let j=i; j> 0; j—){
if (numArray[j-1]< numArray[j] // j-1, j 를 비교
let temp = numArray[j-1];
numArray[j-1] = numArray[i];
numArray[j] = temp;
} else {
break;
}
}
} -> [8, 7, 3, 2, 1, 1]
return parseInt(numArray.join(''));
2. 3진법 뒤집기
// 1. 10진법을 3진법으로 바꾸기
let converted3 = '';
while (n >= 3) {
converted3 += (n%3).toString();
n = Math.floor(n/3);
}
let result = n.toString(); // '1'
for (let i= converted3.length -1; i>=0; i—){
result += converted3[i];
}
// 거꾸로 converted3을 조회해서 result 에 붙인다.
for (let i = 0; i<result.length; i++) {
answer += result[i] * (3**i);
}
**** 필수메소드 숙지하기
3. 문자열 다루기 기본
if (!(s.length === 4 || s.length ===6)) {
return false;
}
let isNumeric = true; // 순정 숫자 여부
for (let i = 0 ; i<s.length; i++) {
let ch = s[i]; // 이 ch 라는 문자가 숫자?
if (!(ch>=0 ** ch<=9)) { // isNaN (ch)
isNumeric = false; // 문자야
break;
}
}
4.없는 숫자 더하기 (비트맵 이용)
const arr = [];
for (let i = 0; i<10; i++) {
arr.push(false);
}
for (let i = 0; i < numbers.length; i++) {
const paintedIndex = numbers[i];
arr[paintedIndex] = true;
}
let sum = 0;
for (let i = 0; i<arr.length; i++) {
if (!arr[i]) {
sum +=i;
}
}
return sum;
* 레벨 1 은 배열 숫자&&문자열 이 GOAT 다 .