헝D의 일기장
article thumbnail
[프로그래머스] 숫자 게임 java 풀이(LEVEL3)
코테풀이 2023. 8. 31. 19:36

https://school.programmers.co.kr/learn/courses/30/lessons/12987 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 자연수를 하나씩 부여받습니다. 각 사원은 딱 한 번씩 경기를 합니다. 각 경기당 A팀에서 한 사원이, B팀에서 한 사원이 나와 서로의 수를 공개합니다. 그때 숫자가 큰 쪽이 승리하게 되고, ..

[프로그래머스] 야근 지수 java 풀이 (LEVEL3)
코테풀이 2023. 8. 27. 21:17

https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다.Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴..

[프로그래머스] 최고의 집합 자바 java 풀이(LEVEL3)
코테풀이 2023. 8. 19. 22:14

https://school.programmers.co.kr/learn/courses/30/lessons/12938 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 "집합"으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을 만족하면서 각 원소의 곱 이 최대가 되는 집합 예를 들어서 자연수 2개로 이루어진 집합 중 합이 9가 되는 집합은 다음과 같이 4개가 있습니다. { 1, 8 }, { 2, 7 }, { ..

멀티스레드 환경에서의 싱글톤 패턴
개발공부 2023. 8. 16. 20:58

회사에서 운영중인 웹 어플리케이션에서는 db 연결 프레임워크로 마이바티스를 사용하고 있다. 하지만 간혹 대용량 데이터를 처리해야하는 경우가 종종 있는데, 이러한 경우에는 마이바티스를 사용하는 것보다는 jdbc batch 방식을 이용하는 것이 성능에 더 좋아 batch 방식을 사용하고 있다. 그렇게 운영하던 와중 한가지 이상한 점을 발견했는데, jdbc 배치 처리를 위해 db 커넥션을 생성하는 클래스가 싱글톤 패턴으로 구현되었다는 것이다. 기본적으로 tomcat은 다중 유저의 요청을 멀티스레드로 처리하게 되고, 멀티 스레드 환경에서 싱글톤 패턴을 사용하게 되면 각각의 스레드가 static 변수에 접근할 수 있게 되면서 동시성 문제가 생길 수 있다. 즉 대용량 데이터를 처리하는 메뉴들을 여러명의 사용자가 동..

[프로그래머스] 혼자 놀기의 달인 java 풀이(LEVEL2)
코테풀이 2023. 8. 12. 21:44

https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 혼자서도 잘 노는 범희는 어느 날 방구석에 있는 숫자 카드 더미를 보더니 혼자 할 수 있는 재미있는 게임을 생각해냈습니다. 숫자 카드 더미에는 카드가 총 100장 있으며, 각 카드에는 1부터 100까지 숫자가 하나씩 적혀있습니다. 2 이상 100 이하의 자연수를 하나 정해 그 수보다 작거나 같은 숫자 카드들을 준비하고, 준비한 카드의 수만큼 작은 상자를 준비하면 게임을 시작할 수 있으..

article thumbnail
[프로그래머스] 광물 캐기 java 풀이 (LEVEL2)
코테풀이 2023. 8. 3. 19:13

https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 마인은 곡괭이로 광산에서 광석을 캐려고 합니다. 마인은 다이아몬드 곡괭이, 철 곡괭이, 돌 곡괭이를 각각 0개에서 5개까지 가지고 있으며, 곡괭이로 광물을 캘 때는 피로도가 소모됩니다. 각 곡괭이로 광물을 캘 때의 피로도는 아래 표와 같습니다. 예를 들어, 철 곡괭이는 다이아몬드를 캘 때 피로도 5가 소모되며, 철과 돌을 캘때는 피로도가 1씩 소모됩니다. 각 곡괭이는 종류에 상관없이 ..

[트러블슈팅] 오라클 oracle 오류: 수치가 부적합합니다
개발공부 2023. 7. 29. 17:03

시스템 운영 중 원래 이상이 없던 select문에서 갑자기 '수치가 부적합합니다' 오류가 발생하면서 조회가 되지 않는 현상이 발생했다. 해당 쿼리는 테스트 DB에서 발생한 오류였으며 같은 쿼리를 운영DB에서 돌렸을때는 문제가 되지 않았다. 같은 쿼리인데 왜 테스트 DB에서만 문제가 있는지 생각해보니, 보통 경험적으로 이런 식의 오류가 있을때는 쿼리보다는 데이터에 문제가 있는 경우가 많았다. 이상이 있는 쿼리는 데이터 타입이 char인 컬럼 때문이었는데, 보통 char형의 데이터를 조회하려면 use_flag='0001' 이런식으로 따옴표를 붙여서 조회해야 하나 해당 쿼리에서는 use_flag=1 이라고 숫자로 조회하고 있었다. 운영 DB에서 문제가 되지 않았던 이유는 운영 DB의 use_flag 컬럼에는 ..

[프로그래머스] 테이블 해시 함수 java 풀이(LEVEL2)
코테풀이 2023. 7. 29. 16:39

https://school.programmers.co.kr/learn/courses/30/lessons/147354 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 완호가 관리하는 어떤 데이터베이스의 한 테이블은 모두 정수 타입인 컬럼들로 이루어져 있습니다. 테이블은 2차원 행렬로 표현할 수 있으며 열은 컬럼을 나타내고, 행은 튜플을 나타냅니다. 첫 번째 컬럼은 기본키로서 모든 튜플에 대해 그 값이 중복되지 않도록 보장됩니다. 완호는 이 테이블에 대한 해시 함수를 다음과 같이 정의하였습니다. 해시 함수는 col, row_begin, row_end..

article thumbnail
[프로그래머스] N-Queen java 풀이 (LEVEL 2)
코테풀이 2023. 7. 23. 12:09

https://school.programmers.co.kr/learn/courses/30/lessons/12952 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 서로를 한번에 공격 할 수 없습니다. 체스판의 가로 세로의 세로의 길이 n이 매개변수로 주어질 때, n개의 퀸이 조건에 만족 하도록 배치할 수 있는 방법의 수를 return하는 solution함..

[프로그래머스] 과제 진행하기 java 풀이(LEVEL2)
코테풀이 2023. 7. 4. 23:33

https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 과제를 받은 루는 다음과 같은 순서대로 과제를 하려고 계획을 세웠습니다. 과제는 시작하기로 한 시각이 되면 시작합니다. 새로운 과제를 시작할 시각이 되었을 때, 기존에 진행 중이던 과제가 있다면 진행 중이던 과제를 멈추고 새로운 과제를 시작합니다. 진행중이던 과제를 끝냈을 때, 잠시 멈춘 과제가 있다면, 멈춰둔 과제를 이어서 진행합니다. 만약, 과제를 끝낸 시각에 새로 시작해야 되는 ..