전체 글

전체 글

    [프로그래머스] 탐욕법(Greedy). 구명 보트

    https://programmers.co.kr/learn/courses/30/lessons/42885 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다.예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다.구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다.사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출..

    001. 프론트 엔드 시작

    https://github.com/lkimilhol/healingwords-frontend 프로젝트 시작입니다. 어떠한 프로젝트인지, 왜 이 프로젝트를 시작했는지는 추후 공개하도록 하겠습니다. 먼저 프론트엔드는 svelte를 사용해보기로 했습니다. 별다른 이유가 있지 않습니다. 경험이 없어서 무턱대고 요새 많이 사용 되는 프레임워크를 선정하였습니다. 구글링을 통하여 node js를 설치하고 svelte를 설치하였습니다. Bundler는 Rollup bundler로 선정하였습니다만, 이것이 무엇인지는 자세히 모르겠네요. sevelte 개발 환경을 구축하고, 실제로 프로젝트를 실행하여 아래와 같은 페이지를 만났습니다. 제가 필요로 하는 부분은 API 요청을 해야 하는 부분이기 때문에 구글링을 통해서, 아주 ..

    [프로그래머스] 완전탐색. 소수 찾기

    https://programmers.co.kr/learn/courses/30/lessons/42839 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예 numbers return "17" 3 "011" 2 입출력 예설명 예제 #1 [1, 7]으로..

    [프로그래머스] 완전탐색. 로또의 최고 순위와 최저 순위

    https://programmers.co.kr/learn/courses/30/lessons/77484 문제 설명 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 순위 당첨내용 1 6개 번호가 모두 일치 2 5개 번호가 일치 3 4개 번호가 일치 4 3개 번호가 일치 5 2개 번호가 일치 6(낙첨) 그 외 그 외로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로..

    [LeetCode] Number of Good Pairs

    https://leetcode.com/problems/number-of-good-pairs Given an array of integers nums, return the number of good pairs. A pair (i, j) is called good if nums[i] == nums[j] and i

    Kafka offset에 대해서

    모든 소스 코드는 https://github.com/lkimilhol/kotlin-kafka-toy에서 확인 가능합니다! 안녕하세요. 이번에는 Kafka의 offset에 대해서 알아볼까 합니다. Kafka 메시지를 처리하는 도중 예외를 만난다면 어떻게 될지, 그리고 offset 관련 옵션 설정에 따라서 어떻게 변할지 공부해보려고 합니다. 이는 실제 Kafka를 이용하여 실제 서비스를 할 때도 많은 도움이 될 것이라 생각합니다. 1. offset이란 무엇일까? offset이란 무엇일까요? 바로 consumer에서 메시지를 어디까지 읽었는지 저장하는 값 이라고 볼 수 있을거 같네요. 만약 offset=4 인 경우 offset 0, 1, 2, 3은 메시지를 읽은 것으로 생각 할 수 있습니다. 위 그림과 같이 ..

    Kafka 메시지 순서 보장 확인해보기

    모든 소스 코드는 https://github.com/lkimilhol/kotlin-kafka-toy 에서 확인 가능합니다. 오늘의 고민 내용은 카프카를 통하여 메시지를 순서대로 받을 수 있을까 입니다. 사실 이는 가능한데요. 카프카의 파티션을 하나만 사용한다면 어렵지 않게 순서를 보장 할 수 있습니다. 하지만 이는 카프카의 성능을 100% 발휘 할 순 없는 구조라고 생각됩니다. 천천히 고민해 보도록 하겠습니다. 1. 성능을 어떻게 보장할까? 카프카의 파티션과 컨슈머를 생각해보겠습니다. 아래 사진은 파티션 3개가 컨슈머 3개와 1:1로 매핑되어 있는데요. 카프카의 프로듀서(producer)가 키를 지정하여 각 파티션으로 프로듀스 되었고, 컨슈머가 이 토픽을 컨슘하여 동작하는 방식입니다. 저 사진에서 파티션..

    제네릭에 대한 간단한 정리

    모든 소스 코드는 https://github.com/lkimilhol/tistoryblog에서 확인 가능합니다! 안녕하세요. 이번에는 제네릭을 살펴볼까 합니다. 많은 분들이 generic에 이해하고 계실텐데요. 간단한 예제 정도로 정리만 해보려고 해요. (사실 코딩할때 제네릭을 잘 써본적이 없었거든요) 1. 제네릭을 사용하는 이유? 제네릭을 사용하는 이유는 무엇일까요? 저는 제네릭을 사용하는 이유에 대해서 타입 체크가 컴파일 타임에 이루어 진다. 리턴 타입을 제한 할 수 있다. 로 이해하였습니다. 예시를 들어보겠습니다. 1. 타입 체크가 컴파일 타임에 이루어 진다. UseClass.java public class UseClass { public void exceptionExample() { List te..

    [LeetCode] Single Number

    https://leetcode.com/problems/single-number/ Given a non-empty array of integers nums, every element appears twice except for one. Find that single one. You must implement a solution with a linear runtime complexity and use only constant extra space. Example 1: Input: nums = [2,2,1] Output: 1 Example 2: Input: nums = [4,1,2,1,2] Output: 4 Example 3: Input: nums = [1] Output: 1 Constraints: 1