프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전형적인 DP 문제이다. 제일 위에 있는 꼭짓점부터 가장 밑변까지 이동할때 얻을 수 있는 최댓값을 구해야 한다. 이를 삼각형 모습 그대로 본다면 굉장히 구현하기가 귀찮아진다. 그래서 어떻게 하면 쉽게 해결할 수 있을지 고민을 해보자. 이 그림에서 7을 잡고 쭉 잡아 왼쪽에 붙힌다고 생각해보자. 그러면 값은 아래와 같이 변한다. 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 이제 우리가 알고싶은 갚은 매우 간단하게 계산할 수 있다. 각 위치에 도달하기 위해서는 바로 자신의 위 혹은 왼쪽 대각선에서 내려올..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr n개의 숫자를 전부 더했을때, s가 되면서 이 값을 모두 곱했을때 최댓값이 되는 집합을 찾으라고 한다. 우선 {-1}을 return 하는 케이스는 정말 간단하다. n이 s보다 크면 절대 정답을 구할 수 없고 반대로 n이 s보다 작거나 같으면 정답은 무조건 존재하게 된다. 그러면, 어떻게 집합을 구할 수 있을까? 브루트 포스를 돌릴 수는 없어 보이는데.. 그래서 그리디하게 생각을 해보자. 예를들어 n = 2, s = 16이 들어왔다고 가정을 해보자. 이때 중복된 경우를 제외하고 가능한 후보의 수는 {1, 15}..
네트워크 관련된 글을 작성하는 이유는 지금껏 공부한 내용을 총 정리하기 위함도 있다. 앞으로 얼마나 걸릴지는 모르겠지만, 네트워크 지식을 쌓기 위해 필요한 지식들을 간략하게 짚고 넘어가 보자. 인터넷은 무엇인가? 이 질문에 대해 답하기 위한 방법은 두 가지가 존재한다. 첫 번째는 인터넷의 구성요소를 기술하는 것으로, 인터넷을 구성하는 기본적인 하드웨어와 소프트웨어 요소를 기술하는 방법이다. 두 번째 방법은 분산 애플리케이션에 서비스를 제공하는 인프라 구조 관점에서 인터넷을 기술하는 방법이 있다. 먼저 구성요소의 관점으로 인터넷에 대해 정의해보기로 하자. 구성요소로 본 인터넷 인터넷 용어로, 인터넷에 연결되는 모든 장치는 '호스트' 혹은 '종단 시스템'이라고 부른다. 따라서 우리가 사용하는 노트북, 데스크..
Maximum Number of Coins You Can Get - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 3N개의 코인이 주어집니다. 그리고 3개를 선택하여 2번째로 큰 값을 자신이 가져가고 가장 큰 값을 앨리스가, 가장 작은 값은 밥이 가져갑니다. 이때 나의 최대 값을 구하라고 합니다. 그리디하게 생각을 해봅시다. 결국 총합을 최대한 크게 만들기 위해서는 큰 숫자들을 뽑으면 되겠죠. 하지만 앨리스가 있기에 2번째로 큰 값들을 계속 가져가면 됩니다. 반..
Watering Plants - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 간단한 시뮬레이션 문제입니다. 현재 가지고 있는 물의 상태로 다음 칸을 채울 수 있다면 굳이 돌아갈 필요가 없겠죠. 반면 부족하다면 무조건 돌아가야 합니다. 돌아갈 필요가 없는 경우는 정답에 +1을 해주면 되고 돌아가야 하는 경우에는 현재 위치를 i라고 할때 2*i+1 만큼 이동하도록 구현해주면 됩니다. class Solution { fun wateringPlants(plants: I..
Maximum Twin Sum of a Linked List - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 연결 리스트가 주어졌을때, twin 노드를 더했을때 가장 큰 값을 구하라고 합니다. 간단하게 문제를 해석해보면, 주어진 연결리스트를 list1이라고 두고, list1을 뒤집은 연결 리스트를 list2라고 정의합니다. 이제 리스트를 순환하면서 list1[i] + list2[i] 의 값을 모두 구하고, 이중 최댓값을 구하면 됩니다. 시간복잡도는 배열의 길이..
Deepest Leaves Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 간단하게 이진 트리를 탐색하는 문제입니다. 가장 깊은 위치에 존재하는 리프노드들의 value 총합을 구해야 합니다. 이를위해 아래와 같은 2가지 과정이 필요하다는 것을 쉽게 파악할 수 있습니다. 1. 가장 깊은 노드가 위치한 깊이가 몇인지?? 이를 maxDepth라고 해봅시다. 2. maxDepth를 알았으니, 해당 깊이에 존재한 노드를 찾아 value의 총합을 구해줍니다. 따라..
Sum of All Odd Length Subarrays - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 주어진 배열을 홀수로 잘랐을때, 나올 수 있는 모든 배열의 합을 구하는 문제입니다. 1) filter로 배열의 길이가 홀수인지 확인 2) 현재 index + oddLength가 전체 배열의 길이보다 작은지 확인 이 두가지 조건을 통과했다면 합을 구할 수 있으므로 배열을 range로 copy하고, copy한 배열의 모든 정수를 더해주면 됩니다. class S..
- Total
- Today
- Yesterday
- GORM
- 공지
- paging
- Operating System
- ARP
- java
- network
- spring
- mmu
- algorithm
- effective
- soft delete
- go
- OS
- Database
- fiber
- cs
- Effective Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |