반응형

전체 글 44

피프티피프티(50-50): 중요한 결정을 내리는 방법

안녕하세요! 이번에는 "피프티피프티(50-50)"라는 개념에 대해 이야기해보려고 합니다. 중요한 결정을 내릴 때 우리는 종종 어려움을 겪습니다. 각 선택지의 장단점을 고려하고 예상 결과를 분석하면서 어떤 결정을 해야할지 고민하는 것은 쉽지 않은 일입니다. 그렇다면 우리는 어떻게 더 나은 결정을 내릴 수 있을까요? 이때 피프티피프티(50-50)라는 개념이 도움이 될 수 있습니다. 이번 글에서는 피프티피프티의 원리와 장점, 그리고 실제 적용 사례에 대해 알아보겠습니다. 피프티피프티는 중요한 결정을 내릴 때 사용되는 간단하면서도 효과적인 전략입니다. 그 원리는 매우 간단합니다. 선택지가 두 가지인 경우, 각 선택지를 무작위로 50%의 확률로 선택해 보는 것입니다. 이때 선택한 결과에 대해 내부적으로 느끼는 감..

블로그 주제 확장을 하기로 했습니다.

지금까지 몇 번이나 시도 했지만 도중에 실패했던 블로그를 다시 시작해 보려고 합니다. 실패 했던 가장 큰 이유는 동기 부여가 없었기 때문인것 같습니다. 처음에는 누구나 그렇듯이 블로그부터 열심히 꾸며 놓지만 시간이 지날 수록 글을 작성하는게 귀찮아 지기 시작하더니 결국엔... 블로그를 다시 시작하게 된 이유는 역시 수익 때문입니다. 요즘 경제 관련하여 공부를 하다보니 월급 외의 안정적인 수입 파이프라인을 만들고 싶다는 이유가 가장 크게 다가왔습니다. 블로그 포스팅 외에도 앱을 개발해서 광고 수익을 낼 예정입니다. 물론 관련 내용도 포스팅해서 블로그를 풍족하게 만들어야겠죠! 시작하기에 앞서 가장 중요한 문제가 있었으니... 과연 어떤 주제로 블로그를 만들어 나갈 것인가?? 우선은 제 본업이고 가장 관심이 ..

생활/일상 2023.05.24

HackerRank - Merge Sort: Counting Inversions

카테고리 Sorting 문제 설명 문제의 목표는 다음과 같습니다. 주어진 배열을 합병 정렬하여 정렬된 배열을 생성합니다. 정렬 과정에서 발생하는 역전의 수(두 요소의 순서가 뒤바뀐 경우)를 계산합니다. 해결책 이 문제를 해결하기 위해 합병 정렬을 사용할 수 있습니다. 합병 정렬은 분할 정복 알고리즘의 일종으로, 주어진 배열을 반으로 나눈 뒤 정렬하고 다시 합병하는 과정을 반복합니다. 아래는 Python으로 작성된 구현 예제입니다. def mergeSort(arr): if len(arr)

HackerRank - Fraudulent Activity Notifications

카테고리 Sorting 문제 설명 문제의 목표는 다음과 같습니다. 주어진 일련의 거래 기록을 사용하여 일정 기간 동안의 거래가 부정 거래인지 여부를 확인합니다. 거래의 부정 여부는 해당 거래를 기준으로 이전 일정 기간 동안의 거래의 중간값을 계산하여 판단합니다. 만약 현재 거래의 금액이 중간값의 두 배 이상이라면 해당 거래는 부정 거래로 간주합니다. 부정 거래로 간주되는 거래의 수를 반환해야 합니다. 해결책 이 문제를 해결하기 위해 다음과 같은 단계를 따를 수 있습니다. 이전 일정 기간 동안의 거래를 추적하기 위해 크기가 d인 정수 배열 expenditures를 사용합니다. expenditures 배열의 처음 d개의 요소를 사용하여 초기 중간값을 계산합니다. 거래 기록을 순회하면서 각 거래가 부정 거래인..

HackerRank - Sorting: Comparator

카테고리 Sorting 문제 설명 문제의 목표는 다음과 같습니다. 주어진 정수 배열을 비교 함수에 따라 정렬합니다. 비교 함수는 두 개의 인자를 받아 비교한 결과를 반환해야 합니다. 정렬 결과는 주어진 비교 함수에 따라 오름차순으로 정렬되어야 합니다. 해결책 이 문제를 해결하기 위해 비교 함수를 구현할 수 있습니다. 비교 함수는 두 개의 인자를 받아 비교한 결과를 반환해야 하며, 오름차순으로 정렬되도록 결과를 반환해야 합니다. 아래는 Python으로 작성된 구현 예제입니다. def comparator(a, b): # a와 b를 비교하여 정렬 순서를 결정합니다. # a가 b보다 작을 경우 -1을 반환합니다. # a가 b보다 클 경우 1을 반환합니다. # a와 b가 같을 경우 0을 반환합니다. if a[1]..

HackerRank - Mark and Toys

카테고리 Sorting 문제 설명 문제의 목표는 다음과 같습니다. 주어진 정수 배열과 예산을 가지고, 최대한 많은 수의 장난감을 살 수 있는 경우의 수를 찾습니다. 각 장난감의 가격은 정수 배열에 포함되어 있으며, 예산 이내에서만 구매할 수 있습니다. 해결책 이 문제를 해결하기 위해 다음과 같은 단계를 따를 수 있습니다. 정수 배열을 정렬합니다. 장난감을 구매하기 위해 예산을 초과하지 않는 한도 내에서 가격을 더합니다. 이때, 구매한 장난감의 수를 카운트합니다. 만약 가격을 더했을 때 예산을 초과하게 되면 구매를 중지하고 카운트된 장난감의 수를 반환합니다. 아래는 Python으로 작성된 구현 예제입니다. def maximumToys(prices, k): prices.sort() total = 0 coun..

HackerRank - Sorting: Bubble Sort

카테고리 Sorting 문제 설명 문제의 목표는 다음과 같습니다. 주어진 정수 배열을 오름차순으로 정렬합니다. 정렬에 사용되는 버블 정렬 알고리즘을 구현해야 합니다. 해결책 이 문제를 해결하기 위해 버블 정렬 알고리즘을 구현할 수 있습니다. 버블 정렬은 인접한 두 요소를 비교하여 필요에 따라 위치를 교환하는 과정을 반복하여 정렬을 수행합니다. 아래는 Python으로 작성된 구현 예제입니다. def countSwaps(a): n = len(a) swaps = 0 for i in range(n): for j in range(n-1): if a[j] > a[j+1]: a[j], a[j+1] = a[j+1], a[j] swaps += 1 print("Array is sorted in", swaps, "swaps..

마이크로서비스 아키텍처: 성공적인 구현을 위한 5가지 핵심 전략

안녕하세요! 이번에는 마이크로서비스 아키텍처에 대해 이야기해보려고 합니다. 현대적인 소프트웨어 개발 방법론으로 자리잡은 마이크로서비스 아키텍처는 큰 애플리케이션을 작고 독립적인 서비스로 분리하여 개발하고 운영하는 방식입니다. 이를 통해 유연성, 확장성, 개발/배포/운영의 독립성을 확보할 수 있습니다. 하지만 마이크로서비스 아키텍처를 성공적으로 구현하기 위해서는 몇 가지 핵심 전략을 따르는 것이 중요합니다. 이번 글에서는 마이크로서비스 아키텍처를 구현하면서 고려해야 할 핵심 전략에 대해 살펴보겠습니다. 1. 서비스 경계의 명확성 마이크로서비스 아키텍처에서는 각 서비스가 독립적인 기능을 담당하므로, 서비스 경계를 명확하게 정의하는 것이 중요합니다. 서비스 간의 의존성을 최소화하고, 각 서비스가 독립적으로 변..

개발 2023.05.23

SQS SDK의 Acknowledgment에 대하여

Amazon SQS Acknowledgment의 종류 Amazon SQS(Simple Queue Service)에서 Acknowledgment(확인 응답)은 메시지를 처리한 후 메시지의 상태를 표시하고 해당 메시지를 안전하게 삭제하기 위해 사용됩니다. SQS는 다양한 Acknowledgment 유형을 제공하여 메시지 처리의 유연성과 안정성을 보장합니다. 이 글에서는 Amazon SQS에서 제공하는 Acknowledgment의 주요 종류를 살펴보겠습니다. @SqsListener(value = "${sqs.name.s3}", deletionPolicy = SqsMessageDeletionPolicy.NEVER) public void s3Consumer(EventRequestDTO message, Acknow..

개발/java 2023.05.23

HackerRank - Count Triplets

카테고리 Dictionaries and Hashmaps 문제 설명 문제의 목표는 다음과 같습니다. 주어진 정수 배열에서 등비 수열을 이루는 세 요소의 개수를 찾습니다. 등비 수열은 첫 번째 요소를 선택하고, 두 번째 요소는 첫 번째 요소의 r배, 세 번째 요소는 두 번째 요소의 r배로 이루어집니다 해결책 이 문제를 해결하기 위해 다음과 같은 단계를 따를 수 있습니다. 정수 배열을 딕셔너리 count에 저장합니다. count 딕셔너리는 각 요소의 개수를 저장합니다. 결과를 저장할 변수 result를 초기화합니다. 정수 배열을 순회하며 다음 작업을 수행합니다. 현재 요소를 arr[i]라고 하고, 두 번째 요소를 찾기 위해 arr[i] * r을 계산합니다. arr[i] * r이 count 딕셔너리에 있는 경우..

반응형