
양팔 저울과 몇 개의 추가 주어졌을 때, 이를 이용하여 입력으로 주어진 구슬의 무게를 확인할 수 있는지를 결정하려고 한다.무게가 각각 1g과 4g인 두 개의 추가 있을 경우, 주어진 구슬과 1g 추 하나를 양팔 저울의 양쪽에 각각 올려놓아 수평을 이루면 구슬의 무게는 1g이다. 또 다른 구슬이 4g인지를 확인하려면 1g 추 대신 4g 추를 올려놓으면 된다.구슬이 3g인 경우 아래 과 같이 구슬과 추를 올려놓으면 양팔 저울이 수평을 이루게 된다. 따라서 각각 1g과 4g인 추가 하나씩 있을 경우 주어진 구슬이 3g인지도 확인해 볼 수 있다. 구슬이 3g인지 확인하는 방법 1은 1g인 추, 4는 4g인 추, ●은 무게를 확인할 구슬) 와 같은 방법을 사용하면 구슬이 5g인지도 확인할 수 있다. 구슬이 2g..

문제세계적인 호텔인 형택 호텔의 사장인 김형택은 이번에 수입을 조금 늘리기 위해서 홍보를 하려고 한다.형택이가 홍보를 할 수 있는 도시가 주어지고, 각 도시별로 홍보하는데 드는 비용과, 그 때 몇 명의 호텔 고객이 늘어나는지에 대한 정보가 있다.예를 들어, “어떤 도시에서 9원을 들여서 홍보하면 3명의 고객이 늘어난다.”와 같은 정보이다. 이때, 이러한 정보에 나타난 돈에 정수배 만큼을 투자할 수 있다. 즉, 9원을 들여서 3명의 고객, 18원을 들여서 6명의 고객, 27원을 들여서 9명의 고객을 늘어나게 할 수 있지만, 3원을 들여서 홍보해서 1명의 고객, 12원을 들여서 4명의 고객을 늘어나게 할 수는 없다.각 도시에는 무한 명의 잠재적인 고객이 있다. 이때, 호텔의 고객을 적어도 C명 늘이기 위해 ..

1. Oauth 제3자 클라이언트(우리의 서비스)가 사용자의 인증과 접근 권한을 위임(Delegated Authorization)받을 수 있는 프로토콜로그인 기능을 직접 구현하는 것 대신, 구글, 네이버를 통해 로그인 가능개발자가 로그인 구현보다 서비스 구현에 집중할 수 있게 된다. 사용자 입장에서도 서비스 이용이 편하다관련 개념Resource Owner: 사용자 Client: 인증을 요청하는 애플리케이션개발 서비스를 Client라 한다. Resource Server에 API를 요청하기 때문에사용자를 대신하여 Authorization Server로 인증 요청을 전송Authorization Server에서 받은 Access Token을 사용하여, Resource Server에 사용자 데이터를 요청한다. ..
gradle 버전업에 따라 deprecated된 설정들이 있어 개선해보기 개선 및 확인 사항Deprecated API 사용compile과 testCompile은 Gradle 5.0부터 deprecated되었으며, implementation과 testImplementation을 사용compile은 다른 모듈에 노출된다. 나중에 모듈을 분리할 때 다른 모듈의 의존성을 사용에서 오는 문제가 발생 가능함 Impliementation은 다른 모듈에 노출되지 않음 jcenter는 더 이상 지원하지 않음apply plugin 대신 plugins 블럭 권장apply plugin 대신 plugins 사용현대 Gradle DSL에서는 apply plugin보다는 plugins 블록을 사용하는 것이 권장 AS-ISbuil..
요약 다음 3가지 기능에 따라 최종 시간을 구하기10초 전 이동: prev 명령어 10초 후 이동: next 명령어오프닝 건너뛰기: 현재 위치가 오프닝 구간이면 오프닝 마지막 시간대로 이동 1차에 틀린 이유, 기능 로직 순서prev, next 로직 이후에 오프닝 구간인지 검사했다. 하지만 시작 시간을 포함해서 오프닝 구간인지 검사했어야 했다. 문제(요구사항)를 꼼꼼히 읽어보고 기능의 서로 영향에 대해 고민해야 하는 걸 간접적으로 느낀 문제였다.3가지 기능의 순서에 깊이 생각안하고 각 기능 구현만 보고 구현함 각 기능이 독립적이다 아니다 뿐만 아니라 순서가 존재함package simulation;/* 테케가 아니었으면 틀렸을 문제 예제에서 틀려서 로직 순서의 이상확인 시뮬레이션 -> 로직 ..

프로젝트에서 동시성 이슈를 다루면서 Transactional Serializable이 안되는지 이해가 되지 않았다.isolation level이 가장 높기 때문에 당연히 동시성 이슈가 해결될 것이라 생각했다.하지만 비관적락에서만 동시성 이슈가 발생하지 않았다.그래서 구체적인 동작방식을 이해하고자 정리했다.프로젝트 동시성 이슈 발생상황예약 프로젝트이 특성 사 예약 요청 트래픽이 몰리는 상황을 테스트100개의 스레드로 동시에 예약 요청하여 데이터를 생성int threadCount = 100;ExecutorService executorService = Executors.newFixedThreadPool(32);List list = new ArrayList();for (int i = 1; i list1 = n..

mysql 에서도 I/O 연산을 줄이기 위한 Buffer Pool을 이용해 속도차이를 개선했다는 것이 신기하다.Redis 도 in-memory 기반의 cache 서버로 DB 부하를 줄일다는 것이 기억났다.기술발전에 따라 다양한 방법으로 속도 개선이 이루어지는 것을 알 수 있다. 또한 생각해볼 점은 Buffer Pool 이 메모리를 사용한다는 점이다. 만약 Buffer Pool보다 큰 작업을 수행하게 되면 이점없이 I/O 작업이 늘어나게 될 것이다. Buffer Pool 사이즈를 변경하거나, 쿼리문, index 또는 unique 작업 등을 수정해봐야 겠다는 생각이 들었다. MySQL크게 MySQL 엔진과 Storage 엔진으로 구분MySQL 엔진요청 쿼리에 대해 어떻게 실행할지 결정하는 역할InnoDB특..

Blocking vs Non-Blocking다른 주체가 작업할 자신의 제어권이 있는지 없는지로 볼 수 있다. Blocking다른 작업(함수) 호출 후 처리가 완료될 때까지 대기 후 자신의 작업 수행Non-Blocking다른 작업(함수) 호출 후 응답을 기다리지 않고 자신의 작업 수행필요에 따라 호출한 함수의 리턴값을 처리하는 콜백함수 존재Synchronous vs Asynchronous결과를 돌려주었을 때 순서와 결과에 관심이 있는지 아닌지로 판단 Synchronous, 동기작업을 동시에 수행하거나, 동시에 끝나거나, 끝나는 동시에 시작함을 의미작업 완료를 user space에서 판단하고 다음 작업을 언제 요청할지 결정하게 됩니다.모든 I/O 요청-응답 작업이 일련의 순서를 따릅니다. 즉, 작업의 순서가..
- Total
- Today
- Yesterday
- 백준
- 자바
- 오블완
- 주사위 윷놀이
- 3954
- 투포인터
- 2019 카카오 공채
- 찾아라 프로그래밍 마에스터
- 괄호 변환
- 124 나라의 숫자
- 가장 큰 정사각형 찾기
- 카카오 2020 공채
- programmers
- 티스토리챌린지
- DP
- 카카오2020 공채
- 단체사진 찍기
- 후보키
- 게리맨더링 2
- java
- 정수 내림차순으로 배치하기
- 문자열을 정수로 바꾸기
- Brainf**k 인터프리터
- 라면공장
- 2018 카카오 공채
- 프로그래머스
- 짝지어 제거하기
- 17779
- 17825
- 큰 수 만들기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |