[프로그래머스] 기지국 설치 - Java
·
PS/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12979 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 그리디 문제라고 볼 수 있다. 우선, 이미 설치되어있던 기지국의 위치를 확인하며 i 값을 바꾸는게 포인트이다. 이미 설치되어있던 기지국보다 i값이 작으면 해당 값에는 무조건 기지국을 설치해야 하므로,`i = w * 2 + i`를 해주고 `count`를 증가시킨다. i값이 기지국이 설치되어있는 위치라면 기지국이 설치된 값 바깥으로 옮기고 기지국 인덱스를 증가시켜준다.만약 i값이 모든 기지국 보다 뒤에 ..
[프로그래머스] 등굣길 - Java
·
PS/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 어릴 때, 확률과 통계에서 풀었던 것처럼 천천히 갈 수 있는 길을 계산해보면 된다. 배열을 순차적으로 돌면서 내 위치에서 왼쪽 길과 윗 길을 확인해서 웅덩이가 있다면 큰 값을 선택하고그렇지 않다면 합친 값을 내 위치에 기록한다. 이때 중요한 건 1000000007로 나눠야 한다. class Solution { public int solution(int m, int n, int[][] puddle..
[Spring] synchronized 키워드를 활용한 동시성 문제 해결 및 한계 - 1
·
Spring/동시성 & Lock
동시성 처리우리가 웹 서비스를 개발하다보면 수많은 종류의 동시성 문제를 만날 수 있다.주문을 도메인으로 갖는 서비스에서 상품 재고 동시성 처리선착순 쿠폰에 관한 동시성 처리한정판 등등 동시성 문제는 공유 자원을 동시에 접근하는 과정에서 `Critical Section`에서 발생하는`Race Condition`으로 인한 문제를 의미한다. 따라서, 이번 포스팅에서는 JVM 환경에서 제공하는 `synchronized` 키워드를 사용하여 동시성을 제어하고동시에 한계에 관해 설명하려 한다.  설명에 앞서, 프로세스와 스레드에 대해서 간단하게 짚고 넘어가자.  Proccss와 Thread 프로세스는 무엇일까? 디스크에 파일 형태로 존재하던 프로그램이 주기억장치에 적재되면 그걸 프로세스라고 한다.적재된 프로세스는 `..
2024-09-21 학습일기
·
개발 기록
알고리즘기지국 설치단속카메라징검다리 건너기등굣길디스크 컨트롤러
2024-09-26 학습일기
·
개발 기록
2024.09.20 - [Infra/DevOps] - 분산 시스템에서 데이터를 전달하는 효율적인 방법 - 2 분산 시스템에서 데이터를 전달하는 효율적인 방법 - 22024.09.19 - [Infra/DevOps] - 분산 시스템에서 데이터를 전달하는 효율적인 방법 - 1 분산 시스템에서 데이터를 전달하는 효율적인 방법 - 1이번 포스팅에서는 NHN 유튜브의 분산 시스템에서 데이터를hdbstn3055.tistory.com 2024.09.20 - [CS/Network] - What is Computer Network & Internet? What is Computer Network & Internet?What is a computer network?Answers)A system of computers int..
[Redis] Redis 야무지게 사용하기
·
DB/Redis
Redis 캐시로 사용하기 What is Caching?Temporary Location For Speed데이터의 원래 소스보다 더 빠르고 효율적으로 액세스할 수 있는 임시 데이터 저장소 `캐시`란 사용자의 입장에서 데이터의 원래 소스보다 빠르게 효율적으로 액세스 할 수 있는 임시 저장소를 말한다.대부분의 애플리케이션에서 속도 향상을 위해 `캐시`를 사용한다. 일단 이 `캐시`를 효율적으로 접근하기 위한 조건은 다음과 같다.원본 보다 빠른 접근 속도같은 데이터 반복적 액세스(즉, 데이터 액세스 횟수가 1번 이상이여야 의미가 있음)변하지 않는 데이터 Redis as a cache Most popular software caching solution단순한 key-value 구조In-memory 데이터 저장소..