전체 글 38

[프로그래머스] 124 나라의 숫자 - JAVA 풀이

문제 설명124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.124 나라에는 자연수만 존재합니다.124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.제한사항n은 50,000,000이하의 자연수 입니다.입출력 예아이디어문제가 이해가 잘 안돼서 여러번 읽었다..3으로 나눈 나머지 배열을 만들고두자릿수 이상은 다시 나누기 연산을 하고 뒤에서부터 붙인다3으로 나눠 떨어지면 -1 처리 하는 부분 주의JAVA 풀이class Solution {..

알고리즘 2024.10.25

스프링캠프 2024 - 실전 MSA 개발 가이드(김용욱) 정리

스프링캠프 2024 - 실전 MSA 개발 가이드 MSA를 약식(?)으로만 구현해봐서 학습해보려던 차에올해 스프링캠프에서 비기너를 위한 세션이 있어 새로 알게된 내용을 정리해본다   기존의 마이크로서비스 아키텍처의 정의만 보면 왜 적용해야하는지에 대해 명확히 알기 어렵다는 문제가 있다왜 하는지 모르기 때문에 우리 시스템에 적절하게 맞는지 아닌지도 알기 어렵다또한 도입을 하더라도 이정도면 충분히 MSA를 적용한것인가? 에 대한 기준도 애매하다   데이터베이스를 분리해서 개발한다는것 자체가 난해하다API 속도와 데이터 정합성에 대한 불안감이 생긴다  DB를 제대로 분리하지 못하면 결국 이런 혼종을 낳게 되는데...  첫번째 우려   단순하게 다른 여러 서비스의 데이터를 보여준다고 해서 api 속도가 느려지지 ..

아키텍처 2024.10.23

[프로그래머스] 가장 많이 받은 선물 - JAVA 풀이

가장 많이 받은 선물문제 설명선물을 직접 전하기 힘들 때 카카오톡 선물하기 기능을 이용해 축하 선물을 보낼 수 있습니다. 당신의 친구들이 이번 달까지 선물을 주고받은 기록을 바탕으로 다음 달에 누가 선물을 많이 받을지 예측하려고 합니다.두 사람이 선물을 주고받은 기록이 있다면, 이번 달까지 두 사람 사이에 더 많은 선물을 준 사람이 다음 달에 선물을 하나 받습니다.예를 들어 A가 B에게 선물을 5번 줬고, B가 A에게 선물을 3번 줬다면 다음 달엔 A가 B에게 선물을 하나 받습니다.두 사람이 선물을 주고받은 기록이 하나도 없거나 주고받은 수가 같다면, 선물 지수가 더 큰 사람이 선물 지수가 더 작은 사람에게 선물을 하나 받습니다.선물 지수는 이번 달까지 자신이 친구들에게 준 선물의 수에서 받은 선물의 수..

알고리즘 2024.10.21

[프로그래머스] 귤 고르기 - JAVA 풀이

귤 고르기문제 설명경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다.예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3] 이라고 합시다. 경화가 귤 6개를 판매하고 싶다면, 크기가 1, 4인 귤을 제외한 여섯 개의 귤을 상자에 담으면, 귤의 크기의 종류가 2, 3, 5로 총 3가지가 되며 이때가 서로 다른 종류가 최소일 때입니다.경화가 한 상자에 담으려는 귤의 개수 k와 귤의 크기를 담은 배열 tangerine이 매개변수로 주어집니다. 경화가 귤 k개를 고를 때 크..

알고리즘 2024.10.19

[프로그래머스] 기사단원의 무기 - JAVA 풀이

기사단원의 무기문제 설명숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다.각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다.예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 구매합니다. 만약, 이웃나라와의 협약으로 정해진 공격력의 제한수치가 3이고 제한수치를 초과한 기사가 사용할 무기의 공격력이 2라면, 15번으로 지정된 기사단원은 무기점에서 공격력이..

알고리즘 2024.10.18

[프로그래머스] 지폐 접기 - JAVA 풀이

지폐 접기문제 설명민수는 다양한 지폐를 수집하는 취미를 가지고 있습니다. 지폐마다 크기가 달라 지갑에 넣으려면 여러 번 접어서 넣어야 합니다. 예를 들어 지갑의 크기가 30 * 15이고 지폐의 크기가 26 * 17이라면 한번 반으로 접어 13 * 17 크기로 만든 뒤 90도 돌려서 지갑에 넣을 수 있습니다. 지폐를 접을 때는 다음과 같은 규칙을 지킵니다.지폐를 접을 때는 항상 길이가 긴 쪽을 반으로 접습니다.접기 전 길이가 홀수였다면 접은 후 소수점 이하는 버립니다.접힌 지폐를 그대로 또는 90도 돌려서 지갑에 넣을 수 있다면 그만 접습니다.지갑의 가로, 세로 크기를 담은 정수 리스트 wallet과 지폐의 가로, 세로 크기를 담은 정수 리스트 bill가 주어질 때, 지갑에 넣기 위해서 지폐를 최소 몇 번..

알고리즘 2024.10.17

[프로그래머스] 겹치는 선분의 길이 - JAVA 풀이

겹체는 선분의 길이문제 설명선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를 return 하도록 solution 함수를 완성해보세요.lines가 [[0, 2], [-3, -1], [-2, 1]]일 때 그림으로 나타내면 다음과 같습니다.선분이 두 개 이상 겹친 곳은 [-2, -1], [0, 1]로 길이 2만큼 겹쳐있습니다.제한사항lines의 길이 = 3lines의 원소의 길이 = 2모든 선분은 길이가 1 이상입니다.lines의 원소는 [a, b] 형태이며, a, b는 각각 선분의 양 끝점 입니다.-100 ≤ ..

알고리즘 2024.10.14

[AWS] SAA, SAP 늦은 합격 후기

AWS SAP 취득 후기를 더 휘발되기 전에 남겨본다SAAaws saa 를 취득한건 연초(1월말) 즈음이었고 약 2~3주 타이트하게 공부했다유데미 강의와 examtopics 문제만 봤고굵직한 키워드 기준으로 정리해서(약 125개 정도로 축약) 시험장 들어가기 전까지 반복해서 봤다  https://www.udemy.com/course/best-aws-certified-solutions-architect-associate/    Free & Accurate Amazon AWS Certified Solutions Architect - Associate SAA-C03 Practice Questions | ExamTopicsGet ready to prepare like you’ve never prepared be..

기타 2024.10.14

[프로그래머스] 두 개 뽑아서 더하기 - JAVA 풀이

[프로그래머스] 두 개 뽑아서 더하기문제 설명정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.제한사항numbers의 길이는 2 이상 100 이하입니다.numbers의 모든 수는 0 이상 100 이하입니다.입출력 예아이디어2중 루프 돌려서 중복 없이 리스트에 추가한다 (indexOf로 중복 체크 했지만 HashSet으로도 처리 가능)오름차순 정리JAVA 풀이import java.util.*;class Solution { public List solution(int[] n) { List tmp = new ArrayList();..

카테고리 없음 2024.10.13

[프로그래머스] 안전지대 - JAVA 풀이

프로그래머스 - 안전지대문제 설명다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다.지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다.지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요.제한사항board는 n * n 배열입니다.1 ≤ n ≤ 100지뢰는 1로 표시되어 있습니다.board에는 지뢰가 있는 지역 1과 지뢰가 없는 지역 0만 존재합니다.입출력 예아이디어board[i][j] 의 상하좌우, 대각선 상하좌우에 값을 1로 변환한 뒤 0의 갯수를 리턴한다테두리 경계값에 걸칠때 ..

알고리즘 2024.10.11