분류 전체보기 192

[2023 KAKAO BLIND RECRUITMENT] 택배 배달과 수거하기

https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 우선 이동 거리를 최소로 하기 위해서는 물류창고로부터 멀리 떨어진 집을 우선으로 배달/수거를 해야 한다. (그리디 알고리즘) 따라서 배달할 수 있는 상자의 수를 d, 수거할 수 있는 상자의 수를 p라고 하면, 다음과 같이 구현할 수 있다.int d = cap;int p = cap; // 가장 먼 집부터 배달/수거for (int i = n - 1; i >= 0; i--) { d -= delive..

CS/Algorism 2024.06.09

99클럽 코테 스터디 20일차 TIL: [프로그래머스] 사칙연산

https://school.programmers.co.kr/learn/courses/30/lessons/1843 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 주어진 식에 대한 연산의 최댓값을 구하는 문제이다. 예를 들어 1 - 3 + 5 - 8라는 식이 주어졌을 때 괄호의 위치에 따라 여러 연산 결과가 나오는데 그 중 최댓값을 구하면 된다.이때 다음과 같은 dp 개념이 사용된다.A + B의 최댓값을 구하려면, A와 B 둘 다 최댓값이어야 한다.A - B의 최댓값을 구하려면, A는 최댓값, B는 최솟값이어야 한다.위와 같이 - 연산자의 뒤에 있는 수는 최솟값..

CS/Algorism 2024.06.08

[2024 KAKAO WINTER INTERNSHIP] 도넛과 막대 그래프

https://school.programmers.co.kr/learn/courses/30/lessons/258711 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 특정 알고리즘을 사용할 필요는 없고, 문제의 이해와 해석이 요구되는 문제였다.  각 그래프의 특징을 생각하고, 이를 기반으로 각 그래프의 갯수를 구하면 된다. 각 그래프의 특징은 다음과 같다.추가된 정점: 나가는 선이 2개 이상이면서 들어오는 선이 없다. 그리고 추가된 정점에서 나가는 선의 개수가 총 그래프의 갯수이다.8자 모양 그래프: 나가는 선이 2개 이상이다.막대 모양 그래프: 나가는 선이 없..

CS/Algorism 2024.06.07

99클럽 코테 스터디 19일차 TIL: [프로그래머스] 정수 삼각형

https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr dp 기본 문제이다. 다음과 같이 한 숫자를 기준으로 봤을 때 왼쪽과 합쳐질 수도 있고 오른쪽과 합쳐질 수도 있다. 그리고 더 큰 값으로 합치면 된다. dp[i][j] = max(dp[i - 1][j - 1], dp[i - 1][j]) + arr[i][j] 이를 코드로 구현하면 다음과 같다. import java.util.*;class Solution { public int solution(in..

CS/Algorism 2024.06.07

99클럽 코테 스터디 18일차 TIL: [프로그래머스] N으로 표현

https://school.programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr DP를 사용해서 풀 수 있는 문제였다.  처음에는 다음과 같이 만들어진 숫자의 끝에 사칙연산을 추가하는 식으로 풀었다.num + Nnum - Nnum * Nnum / N그런데 이렇게 풀면 오답이다. 만약 5을 4번 사용한다고 했을 때 (5 + 5) * (5 + 5) (= 100)라는 식이 있을 수 있다. 그런데 위 방법대로라면 저 식은 나올 수 없고 (5 + 5) * 5 + 5 (= 55)라는 식만 ..

CS/Algorism 2024.06.06

99클럽 코테 스터디 17일차 TIL: [프로그래머스] 단속카메라

https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 그리디로 풀 수 있는 문제였다.최대한 적은 수의 카메라를 설치하기 위해서는 각 자동차가 위치한 범위 내에서 최대한 뒤쪽에 카메라를 설치하면 된다. 그래야 다음 자동차도 이미 설치된 카메라 범위에 포함될 가능성이 있기 때문이다. 즉, 당장에 가장 좋은 것을 선택(= 가장 뒤에 카메라를 설치) 한다는 점에서 그리디 알고리즘이다. 위 아이디어를 가지고 구현하면 되는데, 자동차가 고속도로를 나간 시점을 기준..

CS/Algorism 2024.06.05

[2024 KAKAO WINTER INTERNSHIP] 산 모양 타일링

https://school.programmers.co.kr/learn/courses/30/lessons/258705 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr dp로 풀 수 있는 문제이다. 처음에 문제에서 말하는 n을 다른 의미로 해석해서 점점 이상한 길을 가게 되었는데.. 문제에서 의미하는 대로 n을 생각해야 한다. n = 3일 때 만들어지는 도형을 채울 수 있는 경우의 수를 dp[3]이라고 하자. 이때 dp[3]의 앞 순서인 dp[2]는 다음과 같이 두 가지 경우로 나뉠 수 있다.마름모로 채워져 끝나는 경우 (즉, 파란색 부분을 dp[2]에서 마름모 ..

CS/Algorism 2024.06.04

99클럽 코테 스터디 16일차 TIL: [프로그래머스] 섬 연결하기

https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 유니온 파인드(+ 그리디)를 사용하면 아주 간단하게 풀 수 있는 문제이다. (그런데 나는 유니온 파인드를 머릿 속에서 잊고 있어서 못 풀었다.)유니온 파인드를 통해 모든 노드가 하나의 집합이 되도록 다리를 건설하면 된다.그런데 최소 비용이 되도록 다리를 건설해야 하므로, 건설 비용이 적은 다리부터 건설하면 된다.즉, "다리 건설 비용이 적은 순"으로, "모든 노드가 하나의 집합이 될 때까지" 다리를 ..

CS/Algorism 2024.06.04

99클럽 코테 스터디 15일차 TIL: [프로그래머스] 주식가격

https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr dfs로 아주 간단하게 풀 수 있는 문제다. 이차원 배열을 순회한다. 이때 아직 방문하지 않았으면서 값이 1이면 dfs를 시작한다.dfs를 통해 이어진 모든 노드들을 방문한다.dfs를 수행한 횟수가 네트워크 개수가 된다.import java.util.*;class Solution { int answer = 0; int n; int[][] computers; boolean[..

CS/Algorism 2024.06.03

Resilience4j의 서킷 브레이커

내결함성절대 장애가 발생하지 않는 완벽한 시스템을 만드는 것은 불가능하다. 따라서 장애가 발생하더라도 견딜 수 있는 내결함성 시스템을 만드는 것이 중요하다. (* 내결함성(Fault Tolerance): 시스템의 일부 구성 요소가 작동하지 않더라도 계속 작동할 수 있는 기능) 특히 MSA 환경에서 각 마이크로 서비스는 동기적 통신을 통해 서비스 간 의존관계가 생기게 된다. 이로 인해 하나의 서비스 장애가 다른 모든 서비스의 장애로 전파될 수 있다. 따라서 장애 전파를 막는 것이 중요한데 그 방법으로 서킷 브레이커가 있다.Resilience4j의 서킷 브레이커공식 문서에서는 Resilience4j를 다음과 같이 소개한다.Resilience4j is a fault tolerance library for Ja..

카테고리 없음 2024.06.03