일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ec2 nginx websocket reverse proxy
- 예외 처리
- CustomException
- 패러다임 불일치
- 소셜 로그인
- validation
- S3
- spring websocket nginx 설정
- springboot
- 자바 orm
- wss 연결 실패
- AWS
- oauth2.0
- 관점 지향 프로그래밍
- session
- spring boot
- 구글 로그인
- GoormIDE
- @Valid
- OpenAI API
- 이미지 업로드
- 스프링부트
- 개발 프로젝트
- Flask
- 백준 10815 # 백준 Java
- 도메인 주도 개발
- jwt
- presigned url
- fastapi
- logout
- Today
- Total
목록알고리즘 (49)
개발세발은 안되요
문제https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 각 광물을 다이아몬드, 철, 돌 곡괭이로 캘 때의 피로도를 구한다. 이때 곡괭이는 5개의 광물을 캐고 소모되므로, 광물을 5개씩 묶어 피로도를 계산한다. 그리고 돌 곡괭이를 이용할 때의 피로도가 항상 더 크기 때문에, 돌 곡괭이의 피로도를 기준으로 피로도 배열을 내림차순 정렬하되, 다이아몬드와 철 곡괭이 피로도도 함께 정렬한다. 남아있는 곡괭이의 개수를 비교하면서 다이아몬드 곡괭이 우선 사용 -> 철 곡괭이 사용 -> 돌 곡괭이 사용 순서..
문제https://school.programmers.co.kr/learn/courses/30/lessons/340212 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이진 탐색으로 가능한 숙련도의 최솟값을 찾아간다.이진 탐색이 아닌, 예를 들어 증감연산자를 통해 모든 가능한 숙련도를 비교하려 할 경우 시간초과가 발생한다. 1. answer의 초기값은 diffs의 최댓값의 절반으로 설정한다. 그리고 cur_level(=퍼즐 맞춰지는지 실험해볼 숙련도)의 초기값은 answer로 설정한다. 2. while문 안에서 최소 숙련도를 찾아 answer에 저장하는 작업을 수행할 것이다. 이때 나는 이진 탐색을 사용하여 ..
문제https://school.programmers.co.kr/learn/courses/30/lessons/176962?language=cpp 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이문제에 있는 그대로를 구현해주면 되었다. 1. 과목 시작 시간을 기준으로 오름차순 정렬2. 첫 번째 과목부터 마지막 과목을 제외하고 다음 과목 시작 전까지 완료할 수 있는지를 검사3-1. 만약 완료할 수 있는 경우, answer 배열에 해당 과목 이름 push. a. 만약 다음 과목 시작 전까지 여유 시간이 있고 중간에 멈춘 과목이 있다면 이어서 진행3-2. 만약 완료할 수 없는 경우, 다음 과목 시작까지 남은 ..

문제https://www.acmicpc.net/problem/1041 풀이주사위의 숫자를 입력받은 후, 각 주사위의 면마다 인접해있는 주사위의 수를 우선 2차원 배열로 만들었다. 그리고 문제를 풀면 되는데, 각 N^3개의 주사위는 최종적으로 아래의 3종류 중 하나에 해당하게 된다.한 면만 보이는 경우 : ((N-2) * (N-1) * 4 + (N-2)*(N-2)) 개두 면이 보이는 경우 : ((N-1) * 4 + (N-2)*4) 개3 면이 보이는 경우 : 4개이제 각 종류별로 주사위 눈의 합의 최솟값을 찾으면 된다. 1번 유형의 경우, 전체 주사위의 눈 중 가장 작은 숫자를 찾아 주사위의 개수과 곱한다.2번 유형의 경우, 앞서 만들어놓은 배열 정보를 이용해 가장 작은 숫자가 나오는 면의 조합을 구하..
문제https://www.acmicpc.net/problem/21758 풀이 두 마리의 벌 중 하나는 항상 양 끝 위치 중 하나에 있어야 한다. 이렇게 생각하면 두 마리의 벌과 벌통의 위치에 대한 경우는 3가지로 분류할 수 있다.벌1 - 벌2 - 벌통 : 벌1이 시작 위치, 벌통이 마지막 위치에 존재하는 경우 -> 벌2의 위치를 변화시기키벌1 - 벌통 - 벌2 : 벌1이 시작 위치, 벌2가 마지막 위치에 존재하는 경우 -> 벌통의 위치를 변화시키기벌통 - 벌1 - 벌2 : 벌통이 시작 위치, 벌2가 마지막 위치에 존재하는 경우 -> 벌1의 위치를 변화시키기 이제 각 경우에 대해 발생할 수 있는 최대의 꿀 획득량을 구하면 된다. 이때 주의해야 하는 것은 현재 장소가 최대 100000 개 존재할 수 있으..
문제https://www.acmicpc.net/problem/20365 풀이빨간색 블록과 파란색 블록 중 더 많이 등장하는 블록의 색을 구한다.우선 1에서 구한 색으로 전체를 칠한다.더 적게 등장한 색의 블록 각각 칠한다.이를 식으로 표현하면 다음과 같다.ans = min(red_block , blue_block) + a 코드#include #include using namespace std;string s;int n,R_cnt, B_cnt;int ans;int main(){ cin >> n; cin >> s; //블록 개수 구하기 char cur_block = s[0]; if(cur_block == 'R') R_cnt++; else B_cnt++; f..
문제https://www.acmicpc.net/problem/21315 풀이카드를 섞는 magic(int k) 함수를 구현가등한 모든 (k1, k2) 에 대해 magic을 호출해 주어진 카드 순서를 만들 수 있는지를 확인구체적인 구현은 코드의 주석에서 확인할 수 있다. 코드#include #include using namespace std;int n;int result[1001];int arr[1001];void magic(int k){ int m_arr[1001]= {}; int n_k =1; for(int i=0; i1){ int cur_arr[1001] = {}; int cur_k = n_k/2; // 0 부터 n_k-1 까..
문제https://www.acmicpc.net/problem/2469 풀이? 줄을 기준으로 위에서 아래로 사다리를 타고 내려왔을 때 결과 배열(=up 배열)과 ?줄을 기준으로 아래에서 위로 사다리를 타고 올라갔을 때의 결과 배열(=down 배열)을 구한 후, 두 배열을 비교하여 up 배열을 down 배열과 같게 만들 수 있는지를 확인한다. 구체적인 구현 방식은 아래의 코드 주석을 참고하면 될 것 같다. 코드#include using namespace std;int k,n;string str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";string result;int flag = 0;int main(){ cin >> k >> n >> result; string s[n] = {};..