분류 전체보기

    25. 1. 6. 개발일지 // 리팩토링

    25. 1. 6. 개발일지 // 리팩토링

    * 일단 기존서비스를 돌아가게 만들어보자한투 api계좌 개설 제한걸려서 대기중...구글 oauth일단 비활성화vapid (web push)에 의존성이 있다.vapid key 생성방법새로운 에러 발생원인:init() 메서드가 실행됨const tokens = this.convertConfigToTokenEntity(this.config); 호출이때 this.config가 제대로 초기화되지 않았거나 필수 값들이 없는 상태라면convertConfigToTokenEntity에서 빈 값들로 토큰을 생성하려고 시도결과적으로 필수 필드인 'account'가 없는 상태로 DB 저장을 시도하게 됨임시로 돌아가게 만들어 놓았다. * 해야할일한투계좌 발급받기배포에서 돌려보기FE 코드 실행하는법 알아보기controller 쪽에..

    25. 1. 5. 개발일지 // spring data jpa

    25. 1. 5. 개발일지 // spring data jpa

    * 연관관계 편의 메서드이는 JPA에서 양방향 연관관계를 관리하기 위한 편의 메서드입니다.예를 들어 설명하면:// 편의 메서드 없이 양방향 관계를 설정할 경우StockPrice price = new StockPrice();Stock stock = new Stock();// 양쪽에 각각 설정해야 함price.setStock(stock); // StockPrice -> Stockstock.getPrices().add(price); // Stock -> StockPrice// 편의 메서드를 사용할 경우price.changeStock(stock); // 한 번에 양쪽 다 처리잘못된 사용 예 (실수하기 쉬운 케이스):StockPr..

    [알고리즘] 백준 4375 1 // 모듈러연산, str금지, 자릿수저장할 변수

    [알고리즘] 백준 4375 1 // 모듈러연산, str금지, 자릿수저장할 변수

    * 풀이11, 11, 111, ....을 str로 구함 -> 숫자 * 10 +1 으로 대체가능예시에서 12자리는 long long의 범위를 벗어남 -> 직접 num을 구하기 금지, 모듈러 연산을 이용#include using namespace std;using ll = long long;ll n;ll ret;vector nums;int main() { ios_base::sync_with_stdio(0); cin.tie(0); string str="1"; for(int i=0;i>n) { for(auto num : nums) { if(n * 풀이2구하는것 : num % n == 0 이되는 n의 자릿수자릿수를 저장할 변수 필요 (str. size() 금지..

    [알고리즘] 백준 1629 곱셈 // 지수승은 재귀로

    [알고리즘] 백준 1629 곱셈 // 지수승은 재귀로

    * 풀이1a^b를 for문으로 구하는방법중간중간에 %c복잡도가 터진다. O(20억) * 풀이2이걸 재귀함수로 /2 해가면서 구하면log2 b 로 줄일수있다! b가 홀수인경우, a를 1번더 곱해주면된다. ( 2^5 = 2^2 * 2^2 * 2^1)각각의 18번째줄의 return 문을 만나면서, 계산한 값을 위로 계속 전달해준다!!return을 받은 위쪽 노드는 15번째 줄부터 수행하면서 다시 계산후, 위 노드에게 값을 전달한다.최초 호출 노드를 만나면 main에서 값이 출력된다. * 전체코드

    [알고리즘] 백준 1940 주몽 // 조합은 재귀로

    [알고리즘] 백준 1940 주몽 // 조합은 재귀로

    * next_permutation 풀이 단점 : 시간복잡도가 nCr * n 이다. -> 터짐주의점 : arr이 아니고 v를 돌려야함.#include using namespace std;using ll = long long;ll n, m, ret;vector arr;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m; if(m > 200000) { cout v(n-2,0); // 조합용 벡터 v.push_back(1); v.push_back(1); for (int i = 0; i >tmp; arr.push_back(tmp); } do { ..

    [알고리즘] 백준 1725 히스토그램 // 스택

    [알고리즘] 백준 1725 히스토그램 // 스택

    https://www.acmicpc.net/problem/1725* 풀이히스토그램 문제를 직관적으로 이해하는 방법은 이렇습니다:"뻗어나가기" 관점:각 막대는 자신의 높이를 유지하면서 양옆으로 최대한 뻗어나가려고 합니다예를 들어 높이 4인 막대는 "높이 4를 유지하면서 얼마나 넓은 직사각형을 만들 수 있을까?"를 생각하는 것입니다"막히는 지점" 찾기:뻗어나가다가 자신보다 낮은 높이를 만나면 거기서 멈춰야 합니다이것이 바로 우리가 스택에서 pop을 하는 시점입니다스택의 역할:스택은 "아직 더 뻗어나갈 수 있는 막대들"의 모음입니다새로운 막대를 만났을 때, 이 막대보다 높은 것들은 더 이상 뻗어나갈 수 없으므로 pop하고 계산합니다이렇게 생각하면 너비 계산도 이해하기 쉽습니다:스택이 비었다는 것은 "왼쪽으로 ..

    [알고리즘] 백준 6198 옥상정원꾸미기 // 스택, 역발상, 자기중심적 사고, st.size() 도 의미가 있다.

    [알고리즘] 백준 6198 옥상정원꾸미기 // 스택, 역발상, 자기중심적 사고, st.size() 도 의미가 있다.

    * 풀이유사문제들의 풀이의 공통점계산이 끝난 원소를 바로 while문으로 pop 하는 특징(top 나보다 작은 top -> 나를 볼수없음 -> pop 남은 스택의 원소갯수 = 나를 볼수있는 빌딩의 갯수!예시 낚시예시는 관리인 시점에서 탐색중인 current가 아니라 탐색이 끝난 element 관점으로 서술되어있다.이러면, 상태관리가 어려워진다.문제 해결에서 "현재 위치(current)"를 중심으로 생각하는 것은 매우 좋은 접근 방법이런 관점이 유용한 이유는: 1. 문제를 더 작은 단위로 나눌 수 있음    - "전체 빌딩이 몇 개를 볼 수 있는가?" 대신    - "현재 빌딩(나)에 대해서는 어떤 일이 일어나는가?" 2. 상태 관리가 쉬워짐    - 현재 시점에서 필요한 정보만 유지    - 이 문제에..

    [알고리즘] 백준 17299 오등큰수 // 스택

    [알고리즘] 백준 17299 오등큰수 // 스택

    https://www.acmicpc.net/problem/17299* 풀이오큰수의 유사문제stack을 이용해서 오큰수를 찾은 애들을 지워버린다. => 시간복잡도를 줄임F[cur]이 F[top]보다  더큰경우 -> cur이 오큰수임, 기록, pop, 반복push(cur)남아있는 애들은 오큰수가 없는애임 -> -1 기록* 전체코드#include using namespace std;typedef long long ll;ll n;vector arr;stack> s;ll F[1000000+4],ans[1000000+4];ll ret;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n ; for (int i = 0; i > tmp;..