728x90 [JAVA/프로그래머스] 3진법 뒤집기 안녕하세요. 문제 설명 주어진 자연수 'n' 을 3진법으로 변환한 후 , 그 수를 역순으로 배치하여 다시 10진법으로 표현하는 문제입니다. public class Solution { public int solution(int n) { int answer = 0; String a = ""; while (n > 0) { a += String.valueOf(n % 3); n /= 3; } int three = 1; for (int j = a.length() - 1; j >= 0; j--) { int q = Character.getNumericValue(a.charAt(j)); answer += three * q; three *= 3; } return answer; } public static void main.. 2024. 1. 29. MSA(Microservice Architecture, 마이크로서비스 아키텍처) 마이크로서비스 아키텍처(MSA) 란? 마이크로서비스 아키텍처는 복잡한 애플리케이션을 작고 독립적으로 운영 가능한 서비스의 모음으로 구성하는 소프트웨어 개발 방식입니다. 각 마이크로서비스는 특정 비즈니스 기능을 수행하며, 서로 다른 서비스는 APi(HTTP REST , 메시지 기반통신)를 통해 통신합니다. MSA의 주요 특징 독립성: 각 서비스는 독립적으로 배포, 운영, 확장될 수 있습니다. 이는 서비스의 장애가 전체 애플리케이션에 영향을 미치는 것을 최소화 합니다. 유연성: 서비스는 다양한 프로그래밍 언어와 데이터 저장소를 사용하여 구축될 수 있습니다. 이는 최적의 기술 스택 선택을 가능하게 합니다.( 각 서비스 마다 다른 언어가 가능하다는 말) 모듈성: 마이크로서비스는 특정 기능에 집중하여 모듈화되어 .. 2024. 1. 26. [JAVA/알고리즘] 플로이드-워셜 알고리즘 : 모든 쌍 최단 경로 탐색 안녕하세요 그래프 이론의 중요한 개념인 플로이드-워셜 알고리즘에 대해 글을 작성 해보겠습니다. 플로이드-워셜 알고리즘은 모든 쌍 최단 경로(All-Pairs Shortest Path) 문제를 해결하는데 사용 됩니다. 플로이드-워셜 알고리즘 개요 플로이드-워셜 알고리즘은 비용이 부여된 그래프에서 모든 정점 쌍 간의 최단 경로를 찾는 알고리즘 입니다. 이 알고리즘은 동적 프로그래밍을 기반으로 하며, 그래프의 모든 정점들을 서로 연결하는 최단 경로의 비용 계산합니다. 알고리즘의 특징 범용성 : 양의 비용 뿐만 아니라 음의 비용이 있는 그래프에도 적용할 수 있습니다. 단 음의 반복되는 비용이 없어야 합니다. 구현의 단순성 : 세 개의 중첩 반복문만으로 구현할 수 있어, 알고리즘의 이해와 구현이 비교적 쉽습니다... 2024. 1. 26. [JAVA/알고리즘] 윈도우 슬라이딩 알고리즘 안녕하세요. 윈도우 슬라이딩 알고리즘에 대해 글을 쓰겠습니다. 이 알고리즘은 배열이나 리스트와 같은 연속된 데이터에 대해 특정 범위의 데이터를 효율적으로 처리하는 데 매우 유용합니다. 윈도우 슬라이딩 알고리즘의 개념 윈도우 슬라이딩 알고리즘은 '윈도우' 라 불리는 고정된 크기의 부분 배열이나 서브리스트를 사용하여 연속된 데이터의 지합을 효율적으로 분석하는 방법 입니다. 이 '윈도우'는 데이터 집합을 순회하면서 한 단계씩'슬라이드' 하며, 각 단계에서 필요한 계산을 수행합니다. 알고리즘의 장점 효율성 : 윈도우 슬라이딩 알고리즘은 반복적인 계산을 줄여줍니다. 윈도우가 슬라이드 할때 마다 전체를 재계산하는 대신, 윈도의 경계에 있는 요소만을 처리합니다. 시간 복잡도 감소 : 많은 문제에서 O(n²) 의 시간.. 2024. 1. 26. [JAVA/프로그래머스] 문자열 내 마음대로 정렬하기 문제 개요 주어진 문자열 배열 'strings' 와 정수 'n'에 대해, 배열 내 각 문자열의 'n'번째 문자를 기준으로 오름차순 정렬하는 문제입니다. 이 문제의 핵심은 특정 조건에 따라 문자열을 정렬하는 맞춤 정렬 로직을 구현 하는 것 입니다. 코드 import java.util.Arrays; import java.util.Comparator; class Solution { public String[] solution(String[] strings, int n) { // Comparator를 이용한 정렬 Arrays.sort(strings, new Comparator() { @Override public int compare(String o1, String o2) { // n번째 문자를 기준으로 비교 .. 2024. 1. 26. [JAVA/프로그래머스] N진수 게임 안녕하세요 'N진수 게임' 문제는 참가자들이 순차적으로 숫자를 말하며 , 10진수가 아닌 주어진 N진수로 변환 합니다. 문제에서 요구하는 답은 특정 참가자가 말하는 숫자를 미리 계산하는 것 입니다. class Solution { public String solution(int n, int t, int m, int p) { String temp = conversion(t * m, n); StringBuilder sb = new StringBuilder(); for (int i = 0, j = 1; i m) .. 2024. 1. 26. 이전 1 2 3 4 5 다음 728x90