![[BOJ16236] 아기 상어 (Java, BFS, 시뮬레이션)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcI3AfQ%2FbtsLOtIRvMt%2FAAAAAAAAAAAAAAAAAAAAAE-fJGEfn36MfT5JISzX1MlKFAM9MNRi6oE2ZJi5nomm%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DQ4X7Zz8oL5d%252BoRMn%252Bed98sNO6jU%253D)
문제 링크https://www.acmicpc.net/problem/16236 풀이- 구현(시뮬레이션), BFS 격자형 그래프 탐색 문제 - BFS와 2중 for문 만으로 충분하게 풀이 가능한 문제 요구사항 및 절차 ① 현재 상어 위치에서 잡아 먹을 수 있는 물고기까지의 최단 경로 거리를 구한다 - 이때 상어의 크기 이상인 물고기가 있는 칸은 지나갈 수 없다 (상어 크기 )- multi source bfs로 최단 거리를 구함 (시간 복잡도 O(V + E)) ② 최단 거리 정보에서 가장 가까운 물고기 한마리를 선택 (없으면 break문으로 종료)- 여러 마리인 경우 가장 위에 있는 물고기 중 가장 왼쪽에 있는 물고기를 선택- 처음에 정렬을 사용하는 방법을 생각했는나, 그럴 필요 없이 2중 for문으로 최단 ..
최근 메모나 학습 정리를 좀 더 잘 관리하기 위해 Obsidian으로 갈아 타려하고 있다Markdown 문법을 지원하고, 이식성도 좋고 무엇보다 UI와 퍼포먼스가 깔끔하고 부드러워서 좋은 느낌을 받았다 시작하기에 앞서 "보기 좋은게 먹기도 좋다"라는 말처럼 테마(Theme)를 꾸미는 것부터 가장 먼저 관심을 가졌다AnuPpuccin 테마를 선택하고 따라하는데, 가장 중요한 Background 설정이 보이질 않았다 참고. https://www.youtube.com/watch?v=cw0XvIi5vP4 해결 과정 및 방법찾아보니 background 설정 기능을 snippets 통해 활성화 가능하다는 내용이 있었다 참고. 깃허브 이슈https://github.com/AnubisNekhet/AnuPpuccin/i..
![[패스트캠퍼스] 9개 프로젝트로 경험하는 대용량 트래픽 & 데이터 처리 초격차 패키지 Online. 수강 후기 (네고왕 선착순 쿠폰 발급 Project)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbjeNdP%2FbtsLjqSCZtn%2FAAAAAAAAAAAAAAAAAAAAAAj7GqaMEpBU8doedVY5mfnd_LN2zr-6UMWZr6kjYwkP%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D5iVy5w2bGv1EGPaWUQH3KdmoZtk%253D)
1. 서론 (내.돈.내.산) 올해 2024년은 개발 역량 성장 부분에서 의미있는 한 해가 아니었나 싶다. 그동안 다양한 도서 / 강의 / 교육 등을 활용했었고, 5년간 자기개발에 약 450만원을 투자했다는 사실을 최근에 정리하면서 알게 되었다 (교육비 지원하는 회사없는가..) 자기 개발하면서 느낀거지만 "설명도 잘하고 전문성도 갖춘 전문가"도 있는 반면, "성의도 없고 광고에 속았다고 생각했던 강의"도 있었다. 그 중에서 올해 도움 받았던 강의가 하나 있었고, 그게 마침 패스트 캠퍼스 강의라서 연말 후기 이벤트 참여하게 되었다 (그렇다 이게 다 무료 쿠폰을 위한 포스팅이다)요즘 같이 정보가 넘쳐나는 시대에 이 강의를 선택해야 할지 망설이는 개발자가 있다면 이 후기가 참고가 되길 바라며 포스팅합니다*이..
![[AWS] 서버리스 기반 URL 주소 단축 서비스 구현 - (3) 도메인 연결, S3 정적 웹 호스팅](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbDqdlK%2FbtsJKElks35%2FAAAAAAAAAAAAAAAAAAAAADl-yhNgQrnsM2jCmHXvJAf56QeHcR-wt6OOM5wFaAlj%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DlffpHVDEgN1z669xPrR7Zqb2iEE%253D)
앞서 키 생성과 포워딩 람다를 각각 기능 구현하고, API Gateway 연결하여 호출하는 내용을 다루었다.이번 포스팅에서는 도메인 주소를 AWS Route53 연결하여 원본 주소보다 길어지는 문제를 해결하고, 사용자 입력을 받을 정적 웹 호스팅(s3)을 다뤄본다 참고. https://dev-ljw1126.tistory.com/463 [AWS] 주소 축약 서비스(shorten url) 구현 - (1) 키 생성 람다이번 포스팅에서는 AWS 인프라를 활용해서 주소 축약 서비스를 만들어보려 한다.참고로 주소 축약 서비스는 긴 URL을 짧고 간단한 형태로 변환해주는 도구이다. 장점은 아래와 같다① URL 가독성dev-ljw1126.tistory.com https://dev-ljw1126.tistory.com/4..
![[AWS]서버리스 기반 URL 주소 단축 서비스 구현 - (2) 포워딩 람다 구현](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F3ooFg%2FbtsJKOneBIa%2FAAAAAAAAAAAAAAAAAAAAALgHLpe5XJ2VFdi2UwLC_8zMFbg7BjF_2zjgWu5bFqsZ%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DrBec7gcyysxx%252B8Uaxrmq38xfGQs%253D)
앞서 긴 주소를 입력했을 때 키 생성(축약 주소)하여 반환하는 기능을 구현해보았다. 이번 포스팅에서는 축약 주소를 요청했을 때 원본 주소로 포워딩하는 기능을 구현해본다. 참고. https://dev-ljw1126.tistory.com/463 [AWS] 주소 축약 서비스(shorten url) 구현 - (1) 키 생성 람다이번 포스팅에서는 AWS 인프라를 활용해서 주소 축약 서비스를 만들어보려 한다.참고로 주소 축약 서비스는 긴 URL을 짧고 간단한 형태로 변환해주는 도구이다. 장점은 아래와 같다① URL 가독성dev-ljw1126.tistory.com 포워딩 Lambda Function 마찬가지로 Lambda Function을 신규 생성하고, VSCode에 연동하도록 한다. 스크립트 절차는 아주 심플하..
![[AWS] 서버리스 기반 URL 주소 단축 서비스 구현 - (1) 키 생성 람다 구현](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FKEKVa%2FbtsJKScJbEB%2FAAAAAAAAAAAAAAAAAAAAAGXVfmOtwyBj9XTnrTTfPNpYSRbcnGsYtL5JLoZKRaw0%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dc2NMruWX4q5HKjz%252FlQEdnwj9xEM%253D)
이번 포스팅에서는 AWS 인프라를 활용해서 URL 주소 단축 서비스를 만들어보려 한다. 긴 URL 주소를 단축했을 때의 장점은 아래와 같다① URL 가독성 개선, 공유 가능② 사용자 경험 개선 및 클릭률(CTR) 향상 ③ 브랜딩과 신뢰도 향상④ 링크 분석 및 트래킹 가능⑤ 관리 및 업데이트 용이성⑥ 제한된 공간에서의 효율성⑦ URL 관리 용이성 대표적으로 https://bitly.com/와 같은 서비스를 예로 들수 있다. "백문불여일견" 아래를 보면 한 눈에 이해 될 것이다. AWS 공식 블로그에서는 CloudFront를 앞단에 위치하고 있는데, 이번 포스팅에서는 3단계로 나눠직접 도메인을 발급하고 Route53 - API Gateway - Lambda - S3 연결하는 과정을 다뤄본다. Infra ..
![[AWS] VPC, Subnet, EC2 개발 인프라 구성 (선착순 쿠폰 발급 시스템)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb2lTkE%2FbtsJGaYTkLc%2FAAAAAAAAAAAAAAAAAAAAAGiQ7f4Qjf4Af2mmUst37VzLBqvsRS53dpk7gMv8DGCo%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Du2amNgn46ATYS9wHflKKRJJoQ6Q%253D)
토이 프로젝트로 [선착순 쿠폰 발급 시스템]을 만들어보고 AWS 배포를 해보았다. 도메인 발급은 하지 않고, 단순하게 개발 용도로 VPC, Subnet 구성하고 연결했던 내용을 기록으로 남긴다. VPC- Virtual Private Cloud, 가상 네트워크로 격리된 네트워크 환경에서 운영할 수 있도록 해준다- *RFC 1918 국제 규격에 따라 IP 설정 (위키백과) AWS 웹 콘솔에서 커스텀 VPC 생성 (10.0.0.0/16) 한다. 커스텀 VPC 생성시 라우팅 테이블, 기본 NACL(네트워크 ACL), 기본 보안 그룹(default) 만들어진다. 알기로는 네트워크 ACL은 stateless라서 인바운드, 아웃바운드를 둘 다 설정해야 하는 것으로 알고 있다. 반면 보안 그룹은 stateful로 인바..
![[AWS] Lambda@Edge 활용하여 image resize - (2)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fdvv0h2%2FbtsJvdVy1Bt%2FAAAAAAAAAAAAAAAAAAAAAGNryQ_JHxXZBvXCZHkxkLDP3X3wMALOxJVFkydD1Xul%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DtmcnI9q%252FIq0eVN8iGLg7wSGiDcg%253D)
앞서 Lambda 함수 사용하여 S3 저장소 업로드 이미지 리사이징 방법을 살펴보았습니다. 참고. https://dev-ljw1126.tistory.com/460 [AWS] Lambda 활용하여 image resize (+CloudFront) - (1)1편으로 AWS 인프라 사용하여 실무에서도 활용되고 있는 이미지 리사이징을 구현해봅니다.필요한 전체 코드나 과정은 AWS 공식 가이드를 참고해서 했습니다. 가이드에서는 Source bucket과 Destinatiodev-ljw1126.tistory.com Lambda를 활용하여 S3 이미지 리사이징 하는 방식은 아래와 같은 장단점이 있었습니다. 장점.① 자동화된 리사이징 이미지를 S3 업로할 때 자동으로 람다 트리거 되므로, 이를 통해 개발 및 운영 부담..
![[AWS] Lambda 활용하여 image resize (+CloudFront) - (1)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FZ4L4E%2FbtsJuA4GkGl%2FAAAAAAAAAAAAAAAAAAAAADUj1Y7okO_yKO6aDFmmqJv3s9bjy79iXze3yeCTMxMP%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D7NexmuoJOVLPhbn1MhmC6s6wFvg%253D)
1편으로 AWS 인프라 사용하여 실무에서도 활용되고 있는 이미지 리사이징을 구현해봅니다.필요한 전체 코드나 과정은 AWS 공식 가이드를 참고해서 했습니다. 가이드에서는 Source bucket과 Destination bucket 분리하여 사용했는데, 포스팅에서는 간단하게 Bucket 하나에 디렉토리(origin, resize) 구분해서 작업합니다. 흐름은 아래와 같습니다.① S3 bucket의 origin/ 디렉토리에 원본 이미지 업로드② 이벤트 감지해서 Lambda 실행, 이미지 리사이징 후 S3의 resize/ 디렉토리 저장③ 사용자는 CloudFront 도메인 주소로 S3 이미지 호출 S3 버킷 생성region은 서울로 하고 외부 URL로 S3 직접 접근을 못하도록 퍼블릭 엑세스 차단 설정합니다..
![[NHN Cloud] 컨테이너 기반 Prometheus, Grafana 모니터링 환경 구성(by 오픈 소스 툴)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FeeGytI%2FbtsJqphjQEp%2FAAAAAAAAAAAAAAAAAAAAAPFuaJO_jArrwAV_lo7cc6JriXQoHwrFpzPlfDyMF1ix%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dknf0%252BdSgnB%252FFivQZ2SYETfE0C3Q%253D)
“전투에서 실패한 지휘관은 용서할 수 있지만 경계에서 실패하는 지휘관은 용서할 수 없다”는 말이 있습니다. 이 말을 서비스를 운영하는 개발자에게 비춰 보면 장애는 언제든지 발생할 수 있더라도 그만큼 모니터링을 잘 해야 한다는 뜻입니다. - 김영한 CTO 앞에 포스팅에서 기본적인 인프라 구성해보았다. 이번 포스팅에서는 웹서버에 Docker 컨테이너 기반 Prometheus와 Grafana를 설치하고 대시보드를 생성하는 과정을 다뤄본다. 참고. https://dev-ljw1126.tistory.com/458 [NHNCloud] 기본 웹 서버, DB 인프라 구축 (vpc, subnet, floating ip, ..)기본 인프라 구성도nhn cloud 사용하여 아래와 같은 기본 인프라 구성해본다 참고로- ..
![[NHN Cloud] 기본적인 웹 서버, DB 인프라 구축 (vpc, subnet, floating ip, ..)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbZY0fM%2FbtsJlJ9aodK%2FAAAAAAAAAAAAAAAAAAAAAKn3qaRQvXlAdjkj0_i9BNWFPOkLgWucPA02Nk2p-7t-%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DZtQ6Efgl4cpec5fAqzigw%252FMgX8U%253D)
기본 인프라 구성도nhn cloud 사용하여 아래와 같은 기본 인프라 구성해본다 참고로- ssh(22)로 web 서버 접근시 floating ip 주소로 서버 접속한다 (10.*.*.* : 사설 ip로는 외부에서 접근 x)- private subnet에 있는 MySQL 서버는 외부에서 접근 불가하고, public subnet 통해서 접속/접근 가능하다 1. VPC(Virtual Private Cloud) , Internet Gateway- 클라우드 컴퓨팅 환경에서 사용자가 정의한 가상 사설 네트워크- RFC 1918 기재되어 있는 범위로 사설 네트워크를 생성할 수 있다- 10.*.*.* / 172.*.*.* / 192.*.*.* 주소가 해당 [VPC 생성] 버튼 눌러서 10.0.0.0/16 으로 "..

주저리 주저리구매한지 4년 정도 되던 지난 해에 손목시계가 멈춰버렸다. 작년에는 유달리 좋지 않은 일들이 연달아 일어나 시계가 멈춰 버려도 신경 쓰지 않았는데 최근 들어 손목시계 없이 면접을 보러가니 어색한 느낌이 들었다 그래서 배터리를 교체하기 위해 "노드그린-공식 사이트"에 기재된 메일 주소로 시계 배터리 관련해서 문의를 보냈다그런데 기존 업체가 없어지면서 홈페이지의 메일로 발송이 되지 않았다 나중에 알게 된 사실이지만 구 모바일 사이트가 따로 있고, 현재 계약사에서 운영하는 네이버 스토어가 따로 있는 것으로 확인되었다(*올해 8월이후로 노드그린과 계약 종료되서 CS만 담당한다고 공지사항 확인)사용 도구 및 배터리 교체 후기 시계방에서 배터리 교체할 경우 5만원 정도 비용이 든다는 정보를 접했을 때..
![[프로그래머스] 사칙연산 (Java, DP, lv4)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb8lWZh%2FbtsIKK7Sz9Y%2FAAAAAAAAAAAAAAAAAAAAAO4QetWjZ8RAc9lwseYeywzI-btcMxtB5UqERsccQoT5%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DgHn5VnDp2Vvjd2XldKdGQtbfEIY%253D)
문제 출처https://school.programmers.co.kr/learn/courses/30/lessons/1843# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이- 동적 프로그래밍 (dynamic progamming)- bottom-up 방식 풀이 이 문제에서 주의할 점은 사칙연산에서 +는 결합 법칙이 성립하지만, -는 결합법칙이 성립하지 않는다는 부분이다 그렇기 때문에 각 구간별 최대값, 최소값을 구한 후 경우의 수를 고려해야 한다 출처. 나무 위키한 식에서 연산이 두 번 이상 연속될 때, 앞쪽의 연산을 먼저 계산한 값과 뒤쪽의 연산을 ..
![[프로그래머스] N으로 표현 (Java, DP, lv3)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdhKC9T%2FbtsIKalf3XT%2FAAAAAAAAAAAAAAAAAAAAAF7enGT81gpnWxlyYZbW9fktq7bgdpeQGUR4B2FJVDc8%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DerlVt8ObJizcvqFZ9VQ2o03owPA%253D)
문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/42895# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이- 동적 프로그래밍 (Dynamic Programming)- 숫자 N과 사칙연산을 사용해서 number가 만들어지는 N의 사용횟수(1 ~ 8개) 최소값을 구하는 문제- List 컬렉션에 Set 자료구조를 사용하여 중복을 제거하고, 연산 결과를 자리수마다 담을 수 있도록 하였다List> data = new ArrayList();for(int i = 0; i ());} 우선 첫 자..
![[프로그래머스] 등굣길 (Java, DP, lv3)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdycLVJ%2FbtsIKSKB0yl%2FAAAAAAAAAAAAAAAAAAAAAFecQ0TnDlISQqj8D6xVJJVpRJDxOphjFStYDp9jm5Eb%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dmf0DyGjst2DpvV6F3RY3z5w8dnM%253D)
문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이- 동적 프로그래밍 (Dynamic Programming) 문제 - 시간 복잡도 : O(NM) - 격자형 그래프가 주어졌을 때 (1,1) -> (n, m)으로 이동하는 경우의 수를 구하는 문제- 이때 이동 방향은 오른쪽과 아래쪽으로만 이동가능하다 ① dp 배열을 정의하고, 물 웅덩이 영역을 -1로 표시한다 (이때 puddles가 m,n으로 주어져서 주의 필요)int row = n;..
![[Spring Boot] Simple Cache, EhCache(v3.10.8) 간단 테스트 해보기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbVUt5c%2FbtsIKXS0lmG%2FAAAAAAAAAAAAAAAAAAAAAH2Ed2_CNfLMKpDtEENZhacvGnHysUMVaxPm2n5mmnYe%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dw6pJI9%252B7ErD7MGJ60qn5VWtstpM%253D)
캐시란?- 데이터나 값을 미리 복사해놓는 임시 저장소- 시스템 성능을 향상시키기 위한 메커니즘 - 캐시에 데이터를 저장하고 엑세스하는 프로세스이다 캐시를 사용해야 하는 이유① 데이터 접근이 빠르고 비용이 저렴② 애플리케이션 성능이 향상됨③ 응답이 빠름④ 메모리에 데이터 접근하는게 DB에서 가져오는 것보다 항상 빠름⑤ 비용이 많은 백엔드 요청이 줄어듦 캐시에 데이터를 미리 복사해 놓음으로써 처리/접근 시간(비용) 없이 빠른 속도로 데이터 접근할 수 있다 언제 사용- 자주 변경되지 않는 데이터- 원본 데이터에 접근/처리 시간이 오래 걸리는 경우 캐싱 종류 ① 인메모리 캐싱 (ex. Redis)② 데이터베이스 캐싱 (ex. hibernate 1차 캐시)③ 웹 서버 캐싱 - HTTP Cache : 브라우저/프록..
![[프로그래머스] 징검다리 (Java, Parametric Search, lv4)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdAVKi8%2FbtsIKSxHLBE%2FAAAAAAAAAAAAAAAAAAAAABjHC5dadzufqa0TdboD_eb46Y0xOASUchilekcpnNyi%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DZY88xhlfCLDYj9IoAkvN8LKdbfY%253D)
문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/43236 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이- 처음 int[] rocks에서 n개의 바위를 제거하는 조합을 구하는 방식을 생각했으나 50,000C25,000으로 시간 초과 예상 - 이진 탐색 중 매개변수 탐색으로 할 경우 N * log(1억) = 50,000 * 30 시간 복잡도로 풀이 가능 절차- (중요*) int[] rocks를 오름차순 정렬 (ex. [2, 11, 14, 17, 21] )- L과 R의 범위를 지정- 바..
![[프로그래머스] 디스크 컨트롤러 (Java, Heap, lv3)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fcg6tZ2%2FbtsIJZ5m5Yw%2FAAAAAAAAAAAAAAAAAAAAAFZUtfTIP_NqiSxxvKrfXn59frg0AU91ssJyDNtiT8iv%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DnmqVXpJWH%252FWYCGW9xZRiFcYtGlo%253D)
문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 풀이습관처럼 우선 순위 큐에 다 넣고, 정렬을 했었는데 경쟁을 할 때 다음 노드들의 값을 갱신 어떻게 해야 할지에서 막혀서 많은 시간 낭비를 하였다 (습관과 사고를 고쳐야 하는데 .. ) 예제 입력 jobs : [[0, 3], [1, 9], [2, 6]]result : 9 단순히 작업 시간 순으로 정렬한다고 해서 결과값을 구할 수 없었다10ms(= (3 + 11 + 16) / 3) ..