728x90
반응형

1. 문제
프로그래머스 알고리즘 문제풀이 - 자바스크립트 [ 중복된 문자 제거 ]

2. 시도해본 것들

for문으로 해결할 수 있을꺼라 생각했는데,

생각보다 로직이 복잡하고 헷갈렸다.

그래서 우선 중복된 문자를 제거할 방법을 검색했다.

 

 

3. 해결과정

문자열을 제거할 방법은 Set()함수가 좋아보였다.

다만 객체 {  } 로 반환하니 다시 배열로 만들어 줘야한다.

 

4. 알게 된 점

나의 코드

function solution(my_string) {
	// 문자열 배열로 만들기
    const arr = [...my_string];
    // 중복제거 된 { } 객체를 다시 [ ]로 만들기
    const arr_set = Array.from(new Set(arr));
    // 그냥 String()을 하면 , 가 생기니 join("")으로 문자열 만들기
    return arr_set.join("")
}

 

남의 코드

function solution(my_string) {
    return [...new Set(my_string)].join('');
}
 

문자열 자체를 Set함수로 객체{} 만들고 바로 배열만들고 바로 문자열........

진짜 깔끔하다

728x90
반응형
728x90
반응형

1. 문제
프로그래머스 알고리즘 문제풀이 - 자바스크립트 [ 문자열 정렬하기2 ]

2. 시도해본 것들

조건1) 모두 소문자로

조건2) 알파벳 순서대로 정렬

 

3. 해결과정

문자열을 소문자로 바꿔주는 toLowerCase()

그리고 split으로 하나씩 쪼갠후 sort 정렬하고 다시 join으로 묶기

 

4. 알게 된 점

나의 코드

function solution(my_string) {
  let answer = "";
  answer = my_string.toLowerCase().split("").sort().join("");
  return answer;
}

 

남의 코드

function solution(my_string) {
    return my_string.toLowerCase().split('').sort().join('');
}
 
 
728x90
반응형
728x90
반응형

1. 문제
프로그래머스 알고리즘 문제풀이 - 자바스크립트 [ 숫자찾기 ]

2. 시도해본 것들

숫자를 배열에 바로 넣어보았는데 자꾸 값이 0이 반환되었다.

숫자를 문자열로 바꾼후 배열에 추가하니 생각대로 되었다.

 

3. 해결과정

k와 일치하는 자리수는 인덱스+1이라는 사실을 깨닫고

for문안에서 검사하여 답을 찾아 +1했다.

그외에는 -1 반환

 

4. 알게 된 점

나의 코드

function solution(num, k) {
    let str = String(num); //"29183"
    let arr = [...str]; // ["2","9","1","8","3"]
    for(i=0; i<str.length; i++){
        if(Number(arr[i])===k){
            return i+1;
        }
    }    
    return -1
}

 

 

남의 코드

function solution(num, k) {
    var answer = num.toString()
    if (answer.includes(k)) {
        return answer.indexOf(k) + 1;
    } else {
        return -1;
    }
}
 
728x90
반응형
728x90
반응형

1. 문제
프로그래머스 알고리즘 문제풀이 - 자바스크립트 [ 약수 구하기 ]

2. 시도해본 것들

24의 결과값을 봤을때, 약수는 해당 값으로 나눴을때 딱 떨어지는

나머지가 0인 값이다.

 

3. 해결과정

모두 탐색해야하기 때문에 for문을 떠올렸다.

1부터 모두 돌아서 각각 n을 나눴을때 나머지가 0이 되는 값을 배열에 넣었다.

도대체 어떻게 풀지라고 생각들었던 것인데,

왜 정답이 저렇게 나오지?

라고 생각할때 잘 풀리는 것 같다.

 

4. 알게 된 점

나의 코드

function solution(n) {
    var answer = [];
    for(i=1; i<=n; i++){
        if(n%i === 0){
            answer.push(i)
        }
    }
    return answer;
}

 

 

남의 코드

function solution(n) {
    return Array(n).fill(0).map((v, index) => index+1).filter((v) => n%v===0);
}

fill은 처음 보는 함수인데 Array(n)은 Array(20)과 같이 숫자(또는 문자열) 20을 반환할 것 이다.

그럼 fill(0)은 배열에 20개를 모두 0 으로 가득채운다.

map으로 각각 요소에 인덱스 번호로 1을 더해주면

인덱스는 0부터 시작하기에 [1,2,3,4, ... 20]이 들어갈 것이고,

filter를 통해 해당 요소가 나머지가 0일 때에만 값을 반환하도록 한다.

 

해당 함수들을 알더라도 위와 같은 풀이로 풀지 못했겠지만,

새로운 방식과 함수를 배워서 뜻 깊다.

728x90
반응형
728x90
반응형

이번 주 알게 된 점

지금까지 이론공부만 했지 직접 손코딩으로

고민하면서 짜본적이 없었기에 매번 프로젝트를 못따라갔던 것 같다.

 

우선 B반 이승윤튜터님 강의를 듣고 바로 따라쳐본후,

강의없이 직접 손코딩을 했다.

첫번째꺼는 따라치기지만 이후 숫자붙은건 모두 직접손코딩

 

이번주 목표 달성 여부

노드JS로

회원가입, 게시판, 댓글까지 구현완료

(로그인JWT, 좋아요 미구현)

 

JWT와 좋아요는 영상 본 직후에도 따라하기에 너무 어려웠다..

여러번 반복해서 익숙해지긴 했지만,

완벽하게 따라하는건 어려울 것 같다ㅠㅠ

 

다음주 목표 세우기

3계층 이론 강의 듣기 + 직접 3계층 분리하기

NEST강의듣기

728x90
반응형
728x90
반응형

Create

이 메서드는 저장되지 않은 인스턴스를 빌드 하고 인스턴스를 저장합니다.

const jane = await User.create({ firstName: "Jane", lastName: "Doe" });
console.log("Jane's auto-generated ID:", jane.id);

 

findByPk

이 메서드는 제공된 기본 키를 사용하여 테이블에서 단일 항목만 가져옵니다.

 

findOne

이 메서드는 찾은 첫 번째 항목(제공된 경우 선택적 쿼리 옵션을 충족함)을 가져옵니다.

 

findAll

데이터베이스에서 전체 테이블을 읽을 수 있습니다

// Find all users
const users = await User.findAll();

SELECT * FROM ...

attribues 일부만 선택하는 방법

Model.findAll({
  attributes: ['foo', 'bar']
});

SELECT foo, bar FROM ...

where 필터링 하는 방법 (여러개도 가능)

Post.findAll({
  where: {
    authorId: 12,
    status: 'active'
  }
});
// SELECT * FROM post WHERE authorId = 12 AND status = 'active';

OP + OP.or

const { Op } = require("sequelize");
Post.findAll({
  where: {
    [Op.and]: [
      { authorId: 12 },
      { status: 'active' }
    ]
  }
});
// SELECT * FROM post WHERE authorId = 12 AND status = 'active';

 

 

 

 

 

 

 

출처 :  https://sequelize.org/docs/v6/core-concepts/model-querying-basics/

 

Model Querying - Basics | Sequelize

Sequelize provides various methods to assist querying your database for data.

sequelize.org

 

728x90
반응형
728x90
반응형

1. 문제

Table [테이블명] doesn't exist ??

 

npx sequelize init

npx sequelize db:create

npx sequelize model:generate --name User --attributes nickname:string,password:string,confirm:string

 

모두 작성했고, 회원가입 로직까지 만들어서 post를 보내는데 계속 에러가 난다.

근데 로직은 맞는 것 같은데 db도 생성했는데 왜 안될까ㅠㅠㅠㅠ

 

2. 시도해본 것들

 

구글에 검색해봤다. 테이블이 없을때 발생하는 에러래요~

뭐야 이 뻔한 얘기는.. 영어로 테이블 없다고 써져있잖......어??

 

3. 해결과정

 

npx sequelize db:migrate

생각해보니 이걸 안했네.....

 

 

4. 알게 된 점?

 

 

npx sequelize init

npx sequelize db:create

npx sequelize model:generate --name User --attributes nickname:string,password:string,confirm:string

 

3가지를 하고나면 생성된 모델과 마이그레이션을 수정하느라

npx sequelize db:migrate 를 까먹게 된다ㅠㅠ

 

모델 생성하면 다음것도 꼭 해야하는데생성된걸 수정하다보면 까먹는다..... 다음엔 잊지말아야지!

728x90
반응형
728x90
반응형

1. 문제

Table [테이블명] doesn't exist ??

 

npx sequelize init

npx sequelize db:create

npx sequelize model:generate --name User --attributes nickname:string,password:string,confirm:string

 

모두 작성했고, 회원가입 로직까지 만들어서 post를 보내는데 계속 에러가 난다.

근데 로직은 맞는 것 같은데 db도 생성했는데 왜 안될까ㅠㅠㅠㅠ

 

2. 시도해본 것들

 

구글에 검색해봤다. 테이블이 없을때 발생하는 에러래요~

뭐야 이 뻔한 얘기는.. 영어로 테이블 없다고 써져있잖......어??

 

3. 해결과정

 

npx sequelize db:migrate

생각해보니 이걸 안했네.....

 

 

4. 알게 된 점?

 

 

npx sequelize init

npx sequelize db:create

npx sequelize model:generate --name User --attributes nickname:string,password:string,confirm:string

 

3가지를 하고나면 생성된 모델과 마이그레이션을 수정하느라

npx sequelize db:migrate 를 까먹게 된다ㅠㅠ

 

모델 생성하면 다음것도 꼭 해야하는데생성된걸 수정하다보면 까먹는다..... 다음엔 잊지말아야지!

728x90
반응형

+ Recent posts