본문 바로가기

분류 전체보기

(282)
장바구니 및 주문 기능 구현하기 대략적인 erd 장바구니 API & 주문 APIPOST 장바구니 추가 /api/v1/carts Authorization : JWT 토큰 (일반사용자만 접근 가능)GET 장바구니 목록 조회 /api/v1/carts Authorization : JWT 토큰 (일반사용자만 접근 가능)PATCH 장바구니 수정 /api/v1/carts/{cartId} Authorization : JWT 토큰 (일반사용자만 접근 가능)DELETE 장바구니 삭제 /api/v1/carts/{cartId} Authorization : JWT 토큰 (일반사용자만 접근 가능)POST 주문 등록 /api/v1/orders Authorization : JWT 토큰GET 주문단건조회 /api/v1/orders/{orderId} Authoriza..
기사단원의 무기 / 프로그래머스 첫 번째 시도시간초과로 실패!def solution(number, limit, power): ans = 0 for i in range(1, number + 1): cnt = 0 for j in range(1, i + 1): if cnt > limit: break if i % j == 0: cnt = cnt + 1 if cnt > limit: ans = ans + power else: ans = ans + cnt return ans 탐색 범위를 제곱근까지만 구하기약수는 짝이 맞춰서 있기 때문에 제..
배달앱 ERD 설계하기 (feat : 장바구니 기능) 대략 설계된 1차 ERD(테이블의 속성만 설계됐다고 보면 됨, 타입이나 널값여부같은 것은 아직 제대로 결정 안 함)일반회원과 사장테이블은 시간관계상 나누면 복잡해질 것 같아서 통합사장은 여러개의 가게를 만들 수 있기 때문에 회원 테이블과 가게 테이블은 1 : N이때 구현려고 한 요구사항은 회원은 1개의 메뉴만 선택하여 주문할 수 있는 것임리뷰는 하나의 주문에만 달 수 있기 때문에 주문 테이블과 1대 1로 지정해 놓음리뷰 테이블의 가게ID는 외래키(기본키로 잘못 설정해놨다, 수정함)리뷰를 조회할 때 작성자명이 보여야 하기 때문에 회원 외래키를 어디에 적용해야 할지 고민함주문테이블에 있는 회원을 타고 가도 충분할 것 같다고 생각해서, 리뷰 테이블에 회원 외래키를 놓지 않음피드백메뉴가 수정되면 주문한 메뉴가 ..
덧칠하기 / 프로그래머스 정답start + m - 1 을 하면 페인트를 칠할 수 있는 최대 범위의 수가 나옴칠해야 하는 다음 구역이 해당 최대 범위의 수에 포함된다면 넘어가고 그 수보다 크다면 페인트를 칠하는 횟수를 한번 증가시키고 해당 다음 구역부터 페인트칠 시작section[0]부터 시작하는 것이 핵심def solution(n, m, section): ans = 1 start = section[0] #페인트 칠하는 시작점 for i in range(1, len(section)): if start + m - 1
.gitignore 사용하여 git에 올리기 싫은 파일 제외하기 1. 파일에 빼고싶은 파일을 작성한다 2. 캐시 지워주고 올리기!git rm -r --cached .git add .git commit -m "chore : ignore 적용" 3. 완료되면 git에서 해당 파일을 더 이상 추적하지 않는다!
소수 만들기 / 프로그래머스 접근방법특정 길이의 리스트에서 3가지의 수를 뽑는 모든 경우의 수 구하기백트래킹첫 번째 숫자를 고정하고,두 번째 숫자를 첫 번째 숫자 이후의 값 중에서 선택,세 번째 숫자를 두 번째 숫자 이후의 값 중에서 선택하여,모든 경우의 수를 탐색하는 방식으로 구현소수를 구할 때는 범위를 √n까지만 확인하면 된다!def is_prime(n): if n  정답import itertoolsdef solution(nums): answer = 0 num = list(itertools.combinations(nums, 3)) for i in num: isPrime = 0 k = sum(i) for j in range(2, k): if k % j ..
모의고사 / 프로그래머스 첫번째 시도인덱스를 초기화하는 부분에서 문제 발생 -> 나머지 연산자로 해결def solution(answers): sol1 = [1, 2, 3, 4, 5] sol2 = [2, 1, 2, 3, 2, 4, 2, 5] sol3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] idx1 = 0 idx2 = 0 idx3 = 0 cnt = {1:0, 2:0, 3:0} for i in answers: if idx1  정답나머지연산자로 인덱스 구현def solution(answers): sol1 = [1, 2, 3, 4, 5] sol2 = [2, 1, 2, 3, 2, 4, 2, 5] sol3 = [3, 3, 1, 1, 2, 2, 4, 4..
N + 1 문제와 해결 방법 N + 1 문제연관관계가 설정된 엔티티를 조회할 경우에 조회된 데이터 갯수만큼 연관관계의 조회 쿼리가 추가로 발생하는 것연관된 데이터를 조회할 때 비효율적인 쿼리가 발생하는 문제만약 주인은 3명이 있고, 고양이는 9마리가 있다고 하자주인 1명당 고양이를 3마리씩 소유하고 있음이때 주인 엔티티를 조회하게 되면 쿼리는 총 4번 날라가게 된다!SELECT * FROM Owner; → 회원 3명을 조회하는 1번의 쿼리SELECT * FROM Cat WHERE owner_id = ?; → 각 회원마다 고양이를 조회하는 3번의 쿼리 해결방법이렇게 여러번의 select 쿼리가 날라가지 않게 하기 위해서는 join쿼리를 날리고 싶기 마련이다select * from owner left join cat on cat.own..