분류 전체보기

https://www.acmicpc.net/problem/18429  # 문제웨이트 트레이닝을 좋아하는 어떤 대학원생은, 현재 3대 운동 중량 500의 괴력을 소유하고 있다. 다만, 하루가 지날 때마다 중량이 K만큼 감소한다. 예를 들어 K=4일 때, 3일이 지나면 중량이 488로 감소하게 된다. 따라서 운동을 하지 않고, 가만히 있다면 매일매일 중량이 감소할 뿐이다.다행히도 이 대학원생은 N개의 서로 다른 운동 키트를 가지고 있다. 이 대학원생은 하루에 1개씩의 키트를 사용하며, 매일 어떤 키트를 사용할 지는 마음대로 결정할 수 있다. 운동 키트들은 각각의 중량 증가량을 가지고 있으며, 사용할 때마다 즉시 중량이 증가하게 된다. 이 때 몇몇 운동 키트들의 중량 증가량이 같을 수 있으나, 서로 다른 운동..
1. 1차 개발기간(40일)2024.10.01. ~ 2023.11.10.2. 팀원: 6명FE: 1명BE: 1명클라우드: 2명AI: 2명4. 백엔드 기술스택프레임워크: Spring Boot(JDK 21)인프라: AWS EC2, JenkinsDB: postgresqlAPI: JWT, OAuth2, JPA, Redis, Spring Security Tools: Notion, Jira, Github공부한 것JDK 21, Virtual Thread연관 관계 매핑 시 연관관계의 주인JPA 영속성 컨텍스트의 저장시점Spring Data JPA + pageable로 pagingnation 구현하기(OAuth2 + JWT + Redis) 소셜로그인 batch perfromance 올리기build패턴을 사용하는 이유N+1..
이 글은 스프링 라이브러리 implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' 를 이용해서 제작하였고, JWT발급방식은implementation 'io.jsonwebtoken:jjwt-api:0.12.3'implementation 'io.jsonwebtoken:jjwt-impl:0.12.3'implementation 'io.jsonwebtoken:jjwt-jackson:0.12.3'JWT 0.12.3입니다. 소셜로그인 순서도1. 클라이언트에서 spring-boot-starter-oauth2-client에 저장되어 있는 로그인창 주소인window.location.href = "http://localhost:8080/oaut..
백엔드 + 프론트 연결 중 CORS 에러 발생, 근데 preflight는 뭐야?  와이어샤크로 검출해보니tcp에서 syn -> (syn,ack) - > ack로 3way handshake로 잘 받고 options요청(preflight)으로 보내기 시작하는데 하던 중 갑자기 403을 내려버려서 http요청을 받지도 못하고 종료되었다.도대체 뭘까?  CORS 에러 트래킹 과정postman으로 API요청 확인 → 살아있다면 → 서버 양호개발자도구(F12) 켜서 클라(리액트)로 접근하기 → CORS 확인SOP(same-origin policy)란?출처가 다른 애플리케이션이 통신하는 데에 아무런 제약이 없다면1. 악의적인 사용자가 `CSRF`or`XSS` 등의 공격을 통해 사용자 민감한 정보를 탈취가능2. 누구나..
· Tip💡
코딩테스트는 기업이 지원자의 minimum quality를 보장하고 싶어서 만든 제도이다.따라서 기본지식을 테스트하기 위해 문제마다 핵심 알고리즘을 넣는 게 현재까지의 코테 트렌드이다. 이 사고를 바탕으로 핵심 알고리즘 1개 들어갔다는 가정을 세운다.(어려운 문제는 1개+α)그러면 n과 시간복잡도 관계에 따른 핵심 알고리즘 추리로 빠른 문제 전개를 진행한다. 문제 순서도1. n개수를 파악하여 최대 시간 복잡도(빅오 표기법)를 생각한다.2. 시간복잡도에 따른 알고리즘을 생각한다.3. 시간복잡도에 따른 초변환을 하여 가능한 시간인지 파악한다. 4. 해당 알고리즘과 문제를 대입해 보며 가장 적절한 알고리즘을 빠르게 찾아낸다.  1. n개수와 시간 복잡도 2. 시간 복잡도와 초 3. 시간복잡도에 따른 알고리즘 ..
클라이언트 사이드 랜더링을 기준으로 설명합니다.카카오 공식문서: https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com에서 순서도를 참고하면 좋습니다.알면 좋은 점1. 소셜 로그인은 (백엔드 or프론트)한 부분에서 전부 맡아서 진행하는 게 안정적이다.2. 상태관리는 백엔드에서만 진행한다.명칭 얼라인1. Service Client: 프론트(리액트)2.Service Server: 백엔드(스프링)3. Kakao Auth Server: 카카오 인증 서..
[HSAT 6회 정기 코딩 인증평가 기출] 출퇴근길 문제를 풀다가 인자로 배열 100,000개를 100,000번 호출한 정답과전역변수를 사용해서 효율적으로 처리한 정답이 거의 동일한 시간초가 나왔다.100,000 X 100,000 =  4*100억 byte이다.그렇다면 10Gbyte를 사용한 것인데 시간초과도 안 뜨고 왜 가장 큰 문제인 memory exceed도 나지 않았을까?  https://softeer.ai/practice/6248 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 해당 코드는 다음과 같다.def dfs(now, adj, visit): # 목적지 if visit[now]==1: return else: visit[now] = ..
# 신장트리(Spanning Tree) 신장(spanning): 간선의 갯수를 가장 작게 노드를 전부 이어라.(= n-1개) n개 정점 n-1개의 노드 # 최소 신장트리(MST: Minimum Spanning Tree) 네트워크에 있는 모든 정점들을 가장 적은 수의 (간선 + 비용)으로 연결 최소: 비용을 가장 작게 신장: 최소한의 간선으로(= n-1개) => 즉 최소신장트리는 싸이클이 없다. # 크루스칼 알고리즘 그리디: 전체적인 해답을 찾는다는 희망으로 매 순간 최선의 선택을 하는 것. 과연 근데 그게 궁극적으로 최선인 걸까? ex) 네비지도를 보고 가다가 잠시 빠른 길로 간 게 뒤에가 다 막히는 길이여서 더 늦을 수 있음. => 따라서 매 순간 최선의 선택이 최적의 해답임을 보장할 수 없음. 그런데..
https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # Prim 알고리즘 heapq 사용x, 정통알고리즘 INF = float('INF') def prim(n, costs, x): selected = [False]*n # 우리편 distance = [INF]*n # 가중치를 담는 배열 adj_mat = [[INF]*n for _ in range(n)] # 인접행렬 # 1)graph init for c in costs: adj_mat[c[0]][c[..
자료구조 시간에 heap은 Priority Queue라고 배웠습니다. 그럼 파이썬 라이브러리에서는 2개 다 존재하는데 이 차이점은 뭘까? 내부로직은 heapq를 사용하고 있었다. 그럼 차이점은 뭘까? https://stackoverflow.com/questions/36991716/whats-the-difference-between-heapq-and-priorityqueue-in-python What's the difference between heapq and PriorityQueue in python? In python there's a built-in heapq algorithm that gives you push, pop, nlargest, nsmallest... etc that you can ap..
code_wizard
'분류 전체보기' 카테고리의 글 목록