오늘은 학습진단 중에 다른 일이 생겨서 시간이 부족했다. 그래서 6번째 문제를 다 풀지 못했다. 특히 문제만 보고 DFS로 풀면 되겠네 생각했다가 시간 초과로 틀렸었다. 아마 구현했던 방법의 시간 복잡도는 순열의 개수를 구하는 문제와 같은 O((2n)!/(n!*n!)) 일 것으로 보인다. DP로 다시 풀려고 하다가 중단하게 되었는데, DP로 풀면 O(n^2) 이므로 더 빠르다 처음부터 DP로 접근해야겠다는 생각이 들도록 머릿속에 넣으면 좋을 것 같다. 유사 문제 풀이 https://www.codetree.ai/landing/level-test/6630/result/4?&utm_source=clipboard&utm_medium=text 문제 오른쪽 혹은 아래쪽으로만 이동하여 (1,1)에서 (n,n)로 가는..
이번엔 시간 문제로 836점에 머물렀다. 그래도 바로 전 두번째 학습진단에서 틀렸던 문제와 동일한 문제를 만났었는데, 다행이 맞춰서 넘어갈 수 있었다. 틀린 문제는 Parametric Search 문제였는데 기준 세우는 연습이 필요할 것 같다. 이분탐색을 활용하면 좋을 것 같다는 생각이 들지만 막상 안의 메서드를 세우는 방법이 어렵다고 느껴진다. 오늘은 Parametric Search 한 문제를 풀어보며 익숙해지자. https://www.codetree.ai/landing/level-test/6441/result/4?&utm_source=clipboard&utm_medium=text 문제 이차원 배열 A에 각각의 행과 열을 곱한 값이 입력되어 있는데 (인덱스는 1부터), 오름차순으로 정렬하였을 때, k번..
틀렸던 문제는 두 수의 합과 유사하지만 조금 더 복잡한 문제였다. 먼저 기초가 되는 두 수의 합 문제를 풀어보면서 응용할 수 있도록 공부해서 다음엔 풀 수 있도록 연습하자. 문제 두 수의 합 문제는 다음과 같다. n개의 정수로 이루어진 수열이 입력되었을 때, 서로 다른 위치의 두 수를 뽑아 더한 값이 k가 되는 경우의 수를 구하는 문제이다. 풀이 모든 두 수 조합을 비교하는 것은 매우 시간이 오래 걸린다. 딕셔너리에 중복 값을 넣어주고, 중복 값을 제외한 뒤 비교하는 것도 마찬가지로 시간이 오래 걸린다. 5달 전에도 같은 문제를 풀었는데 습관처럼 위와 같은 방법을 사용했었다. 하지만 앞의 숫자부터 k값을 만들 수 있는 짝꿍이 있는지 비교하면서 경우의 수를 세어주는 것이 가장 빠른 방법이다. 이번엔 머릿속..
오늘은 두 번째 학습진단을 진행하였다. 하지만 지난번 보다 일찍 문제를 틀려서 746점으로 내려갔는데, HashMap을 사용하는 문제였다. 문제 풀이 방향은 잘 잡은 것 같은데, 시간 초과가 나타나 결국 틀리고 말았다. 문제를 틀린 김에 HashMap 자료구조에 대한 개념을 다시 잡고 가야겠다. HashMap Python에서는 HashMap 자료구조가 dict라는 class로 구현되어 있다. HashMap은 key와 value 값으로 짝을 이루어 저장되는 구조이다. 따라서 key 를 통해 value를 빠르게 꺼내 쓸 수 있다. 순서 없이 저장되며, 삽입, 삭제, 탐색의 시간 복잡도는 O(1)이다. (1) Dictionary 선언 python에서는 dict() 함수를 호출하거나 {} 괄호를 통해 딕셔너리를..
1. 자소서 자소서는 상대방이 읽기 좋은 자소서를 작성하는 것이 중요하다. 읽기 좋은 자소서는 구조화된 글이라고 볼 수 있는데, 예를 들어 기간, 주최, 기술 스택, 프로젝트 설명, 어필하고 싶은 부분의 내용이 잘 정리되어 있는 글을 말한다. 기간은 해당 기간동안 어떤 업무를 수행하게 되었는지, 왜 그러한 기간이 소요되었는지 어필할 수 있는 요소들과 함께 작성되면 좋다. 주최는 회사에서 진행하였는지 개인(사이드 프로젝트)이 진행하였는지 작성해볼 수 있다. 경력직의 경우는 사이드 프로젝트보다는 회사에서 진행한 프로젝트를 어필하는 것이 더 좋을 수 있다. 기술 스택은 욕심을 버리고 본인이 잘 이해하고 있는 기술 위주로 3가지 정도 키워드를 작성하는 것이 좋다. (ex. Java, Spring Boot, JP..
1. 헤로쿠(heroku) 배포 2 이전에 설정하던 clearDB는 개발에 사용하던 mysql 버전과 상이하기 때문에 mysql 8 버전을 지원하는 Jaws DB로 다시 설정해줘야 한다. 우선 헤로쿠에서 깃을 연결하고, 이전에 했던 내용들을 push 해준다. Heroku git:remote --app project-board-uno git push heroku main App > resouces에서 clear db를 삭제한다. Jaws db의 free plan을 선택하고, setting에서 config를 확인하여 yaml 파일에서 cleardb를 jawsdb_url로 변경해 준다. 변경 사항을 commit push & pull request를 한다. 자동으로 배포가 진행되는 설정을 했기 때문에 자동 빌드..
1. 깃헙 릴리즈 간단하게 프로젝트를 설명하는 README.md 문서를 작성한다. 릴리즈를 하기 위해서는 TAGS가 필요하다. 깃크라켄으로 이동하여 main 위치에서 우클릭을 통해 create tag here를 해준다. 태그의 이름은 v1.0으로 작성할 수 있다. (소프트웨어 버전 작성을 참고 할 수 있다.) 이후 깃헙 페이지에서 새로고침을 하면 우측에 1tags 가 보인다. 들어가보면 releases 탭이 보이고 이 페이지에서 create a new release가 가능하다. 태그를 선택하고, 제목과 내용을 작성한다. 내용은 spring boot release notes를 참고할 수 있다. 태그를 사용하면 빠르게 롤백도 가능하게 된다. 2. 헤로쿠(heroku) 배포 헤로쿠는 무료 클라우드 서비스이다...
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- MySQL
- pytorch
- padding mask
- COLAB
- FastAPI
- 누적합
- greedy
- 백준
- 코딩테스트실력진단
- 알고리즘
- 코딩테스트
- lis
- Algorithm
- 파이썬
- 분리집합
- Prefix sum
- BFS
- python
- 수학
- dfs
- 구현
- boj
- disjoint set
- Transformer
- Look-ahead Mask
- DP
- 트랜스포머
- 이분탐색
- 그리디
- 코드트리