본문 바로가기

분류 전체보기88

백준 14889 스타트와 링크 java 팀 밸런스가 잘 맞아야 한다. 해결 아이디어는 다음과 같다. 1. n 수가 굉장히 적다.     20명중에서 10팀을 뽑는다고 해도 20 c 10이기 때문에 브루트포스로 해도 충분하다. 그래서 백트래킹을 쓰면 될 것 같았다.2. 일단 백트래킹으로 10팀을 뽑고, 2중 for문으로 team1의 시너지를 모두 sum에 더해준다.3. team1에 속하지 않은 팀 2의 시너지도 모두 필요하기 때문에 visited 배열 또한 만들어줘서 visited[]가 false인 값을 team2로 설정한다.4. Math.abs(sum1-sum2) 값을 Math.min(min, 절대값) 이렇게 해준다.5. min을 출력한다. package programers;import java.util.Scanner;public class .. 2024. 4. 29.
프로그래머스 호텔대실 우연히도 PriorityQueue를 배우자 마자 써먹을 기회가 생긴 것 같다.회의실 관련 문제는 이렇게 접근하면 된다. 1. 회의 전체를 시작시간 순서대로, 시작 시간이 동일하다면 끝나는 시간 순서대로 정렬한다.2. PriorityQueue를 만들어서 끝나는 시간 기준 오름차순으로 설정한다 (제일 빨리 끝나는 회의가 필요하기 때문)3. 회의 전체의 while문을 돌려서 만약 회의 시작 시간 기준 끝난 회의가 있다면 pq를 모두 poll해준다4. pq에 offer 해준다5. result = Math.max(result, pq.size())를 해준다 다만 시간이 String으로 되어있고 사용하기 불편했기 때문에 나같은 경우에는 시간이 있다면 :를 떼어버리고 parseInt를 해줬다.이럴 경우에는 00 : 5.. 2024. 4. 25.
3차 프로젝트 디벨롭 (https, socket.io, express.js, react) - 경제적인 버전 서버마다 인스턴스가 있는 경우에는 그냥 호스트 별로 모두 443번 포트를 이용하면 되니까 https 연결이 모두 가능한데 나는 돈이 없기 때문에 t2 micro 인스턴스 하나에서 어떻게든 socket.io, express. js, react(정적파일)를 nginx를 이용하여 돌려보려고 했다. 다음은 시행착오의 과정이다. 실험1. 가비아 도메인 + acm + Route 53 + Ec2 roadbalancer 일단 가비아에서 500원짜리 도메인을 산 다음에 acm(ssl)을 발급받고 Route 53에서 DNS 처리를 해준다(네임서버 설정). 그리고 로드밸런서로는 80번포트의 요청을 자동적으로 443번 포트로 리다이렉트 해준다. 여기까지는 괜찮은데 인스턴스 한개, 즉 443번 포트가 하나밖에 없는 경우에는 n.. 2024. 4. 22.
백준 1912 연속합 dp 문제라고는 하는데 약간 포인터 느낌이 나게 풀었다. memo를 쓰니까 이것도 dp의 일종인가?? 이게 제일 효율적인 것 같은데 만약에 여기서 dp를 쓴다고 하면 dp[i] = Math.max(dp[i-1], dp[i-1] + input[i]);가 되려나..? (좀만 생각해봤는데 이거 안된다.) 푸는 방식은 이렇다. 1. sum과 max를 두고 그대로 input을 받는다. 2. 만약에 sum이 max를 넘으면 max에 할당한다. 시도는 다음과 같다. 1. input에서 -가 나오면 sum에 0을 할당한다. (실패) input이 -가 나왔다고 해도 지금까지의 sum 값이 양수면 그대로 가져가는 것이 최대값이기 때문에 반례가 존재한다. 2. input값을 모두 sum에 넣고 만약 sum이 음수가 되면 그.. 2024. 4. 15.
비트마스크 알고리즘 풀다가 비트마스크라는 것을 처음알았다. 이진수를 이용해서 집합을 만든다고 이해하면 될 것 같다. 이해한 대로 설명하자면 비트 하나하나를 집합(set)으로 쓸 수 있다는 것이다. 큰 장점은 비트 하나 하나가 집합 하나 하나기 때문에 메모리 사용량이 극도로 적어진다는 것이다. ex) 10진수 2진수 16 1000 17 1001 31 1111 즉 만약 length가 4인 집합을 만들고 싶다면 이렇게 4비트의 메모리만 있어도 된다. 여기서 0,1이 false, true값이다. 1. 1 2024. 4. 11.
백준9019_DSLR 생각보다 별거 없었다. DSLR가져오는 아이디어만 고려하면 나머지는 그냥 기본 BFS로 접근하면 완성,. 아래와 같이 만들었다. 어차피 9999까지 만들고 visited 배열 있으니까 시간복잡도에 무리는 없을 것 같았다. 물론 test case가 많지만. - 참고 사항으로는 그냥 초기화만 해줬는데- 그렇게 되면 String 배열에서는 null값이 들어간다는 것을 알았지만서도 (이전것 + " ")를 통해서 graph 배열에 넣어주니까 예상과는 다르게 NullDSLR 이런식으로 들어갔다. 그래서 start 배열에는 그냥 "" 2024. 4. 11.