ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 다 .

Designed by Tistory. KYW