2024/03 7

[programmers] 삼각 달팽이

https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해 주세요. 제한사항 n은 1 이상 1,000 이하입니다. 입출력 예 n result 4 [1,2,9,3,10,8,4,5,6,7] 5 [1,2..

[문제12][LeetCode] 121. 주식을 사고팔기 가장 좋은 시점

https://leetcode.com/problems/best-time-to-buy-and-sell-stock/description/ You are given an array prices where prices[i] is the price of a given stock on the ith day. 주어진 배열 prices에서 prices[i]는 i번째 날의 특정 주식 가격입니다. You want to maximize your profit by choosing a single day to buy one stock and choosing a different day in the future to sell that stock. 하나의 주식을 사는 날과 미래의 다른 날에 그 주식을 판매하는 것으로 이익을 극대화..

[문제11][LeetCode] 238. 자신을 제외한 배열의 곱

https://leetcode.com/problems/product-of-array-except-self/description/ Given an integer array nums, return an array answer such that answer[i] is equal to the product of all the elements of nums except nums[i]. 정수 배열 nums가 주어졌을 때, answer[i]가 nums[i]를 제외한 nums의 모든 요소의 곱과 같게 하는 배열 answer를 반환해주세요. The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer. nums의 어떤 접두사나 접..

[문제10][LeetCode] 561. 배열 파티션 I

https://leetcode.com/problems/array-partition/ Given an integer array nums of 2n integers, group these integers into n pairs (a1, b1), (a2, b2), ..., (an, bn) such that the sum of min(ai, bi) for all i is maximized. Return the maximized sum. 2n개의 정수로 구성된 정수 배열 nums가 주어졌을 때, 이 정수들을 n 쌍의 (a1, b1), (a2, b2), ..., (an, bn)과 같이 그룹화하여 모든 i에 대해 min(ai, bi)의 합이 최대화되도록 합니다. 최대화된 합을 반환하세요. Example 1: Inpu..

[동시성 톺아보기] Java Thread 주요 관리 API (sleep(), join(), interrupt())

Java Thread의 주요 관리 API인 sleep(), join(), interrupt()는 스레드의 생명주기를 관리하고 동기화하는 데 중요한 역할을 합니다. 이번 글에서는 세 메서드의 특징과 동작방식에 대해 알아보도록 하겠습니다. sleep() - 현재 스레드를 지정된 시간 동안 일시 정지시킨 후, 그 시간이 경과하면 스레드를 실행 대기 상태(RUNNABLE)로 전환합니다. - JVM이 직접 처리할 수 없어 네이티브 메서드와 시스템 호출을 통해 커널 모드에서 수행되며 작업이 완료된 후에 유저 모드로 복귀합니다. - 모니터 락이나 다른 자원을 해제하지 않고 스레드의 실행만 중단시키므로, 이를 사용하는 동안 데드락이 발생할 위험이 있습니다. API 및 예외처리 public static native vo..

Java 2024.03.25

[동시성 톺아보기] Runnable 익명 클래스로 Thread 생성

동시성 톺아보기 시리즈 작성 목적 여러 Thread가 공유 메모리에 동시에 접근할 때 동기화 문제가 발생할 수 있습니다. 이를 깊이 이해하기 위해서, 가장 먼저 Thread 생성 코드를 작성 후 내부 메커니즘을 살펴볼 것입니다. timegate-commerce 선착순 상품 구매 프로젝트를 진행하면서 경험한 동시성 문제를 단순히 해결하는 것을 넘어, 운영체제의 프로세스와 스레드의 기초부터 시작해 동시성 문제를 해결해나가는 깊이있는 학습을 목표로 합니다. 이론 1. 스레드 생성 Thread는 Thread 클래스를 상속하거나 Runnable 인터페이스를 구현함으로써 생성할 수 있습니다. 이 때, 익명 클래스나 람다 표현식을 활용하는 것도 가능합니다. 2. 스레드 실행 start() 메서드를 호출하면, 시스템 ..

Java 2024.03.17