TIL 2023 07 26

김민준·2023년 7월 26일
1

DB
프로그래머스

공부 하며 느낀 점
참조한 사이트

DB

DB를 사용하는 이유

  • 데이터의 무결성
  • 동시 사용성

DBMS - DB(=H/W)의 효율적인 작동을 도와주는 S/W

테이블의 관계

  • 1:1 => A_id로 조회하면 결과가 무조건 하나
  • 1:N => A_id로 조회하면 결과가 1개 이상 ( 실제로 자주 쓰인다 )
  • M:N => A_id로 B테이블을 조회하거나,
    B_id로 A테이블을 조회했을 때 결과가 1개 이상.

프로그래머스

피자 나눠 먹기 (1)

피자를 홀수로 나눈다는 현실성이 떨어지는 조건이지만 일단 해보자.

나의 풀이

function solution(n) {
    var answer = 0;
    const cond = n/7
    if ((cond - Math.floor(cond))>0){
        answer = Math.floor(cond)+1
    } else {
        answer = cond
    }
    return answer;
}

다른 사람의 풀이

function solution(n) {
    return Math.ceil(n / 7)
}

Math.floor()만 알고 Math.ceil()를 검색해도 됐지만, 그냥 없이도 구현해보고 싶어서 위의 방식대로 풀어보았다.

정수를 나선형으로 배치하기

이제야 문제다운 문제가 나왔다.

빈 배열과 함수를 만들자, 인자는 x, y, i, shift
x,y는 시작할 배열의 위치, i는 진행횟수이다. x,y,i는 모두 미입력시 기본값 1을 가지게한다???
shift는 이동할 방향이다.
함수의 내용은 shift의 값에 따라서 x 또는 y를 1씩 증가 또는 감소 시키며, i는 1씩 증가시키기만한다. 이것은 값이 있는 배열을 만날때까지 반복된다. 값이 있는 배열을 만나면 자기 자신을 재귀적으로 호출하여 x,y,i,shift를 넘긴다.

shift
0 : y를 1씩 증가 시킨다.
1 : x를 1씩 증가 시킨다.
2 : y를 1씩 감소 시킨다.
3 : x를 1씩 감소 시킨다.

(내일 마저 풀기)

profile
node 개발자

0개의 댓글

관련 채용 정보