분류 전체보기 2435

[아이템 79] 과도한 동기화는 피하라

과도한 동기화는 다음과 같은 부작용을 초래합니다. 성능을 떨어뜨리고 Deadlock 상태에 빠드리고 심지어 예측할 수 없는 동작을 낳을 수 있음 응답 불가와 안전 실패를 피하려면 동기화 메서드나 동기화 블록 내 제어를 절대로 클라이언트에 양도하면 안 됩니다. 동기화된 클래스 관점에서, 다음과 같은 메서드들은 "외계인 메서드(alien method)"로 알려져 있는데, 이는 이러한 메서드들이 어떤 동작을 수행할지 확신할 수 없으며, 예외를 발생시키거나, 데드락 상태에 빠뜨리거나, 데이터를 손상시킬 수 있기 때문입니다. 동기화된 코드 블록 내 재정의 가능한 메서드 클라이언트가 전달한 함수 객체 외계인 메서드(Alien Method) 코드 부연 설명 관찰자들은 addObserver()와 removeObserv..

JAVA/Effective Java 2024.04.07

백준 2109번 순회강연

문제 링크입니다: https://www.acmicpc.net/problem/2109 2109번: 순회강연 한 저명한 학자에게 n(0 ≤ n ≤ 10,000)개의 대학에서 강연 요청을 해 왔다. 각 대학에서는 d(1 ≤ d ≤ 10,000)일 안에 와서 강연을 해 주면 p(1 ≤ p ≤ 10,000)만큼의 강연료를 지불하겠다고 알려왔다. www.acmicpc.net 문제의 핵심은 정확히 d일에 강연을 하는 것이 아니라 d일 안에 강연을 하는 것이었습니다. 알고리즘은 아래와 같습니다. 1. 주어진 p와 d를 d를 기준으로 오름차순으로 정렬합니다. 2. 최소힙을 생성하고 정렬된 순서대로 p를 힙에 넣어줍니다. 2.1 단, 힙의 크기가 넣어준 p의 쌍인 d를 초과할 경우, 힙 내에서 가장 작은 p값인 pq.to..

알고리즘/BOJ 2024.04.06

[Programmers] 특정 형질을 가지는 대장균 찾기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/301646 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr MySQL을 이용하여 풀었습니다. 비트 연산을 이용하면 쉽게 풀 수 있는 문제였습니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨주세요~

[Programmers] 부모의 형질을 모두 가지는 대장균 찾기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/301647 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr MySQL을 이용해 풀었습니다. 비트 연산을 통해 풀어야 하는 문제였습니다. [자식의 개체 형질] & [부모의 개체 형질] = [부모의 개체 형질]이어야 조건 성립 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨주세요~

[Programmers] 대장균의 크기에 따라 분류하기 2

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/301649 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr MySQL을 이용하여 풀었습니다. 대장균의 크기 그룹을 NTILE 문법을 이용해 분류하고 분류한 결과를 토대로 COLONY_NAME을 부여했습니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨주세요~

[Programmers] 특정 세대의 대장균 찾기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/301650 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 멸종위기의 대장균 찾기 문제와 같이 재귀 쿼리를 이용해 각 대장균의 세대를 정의한 테이블(ECOLI_GENERATIONS)을 정의 후 3세대에 포함된 ID들을 출력하는 문제였습니다. MySQL을 이용하여 풀었습니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨주세요~ 멸종기의 대장균 찾기

[Programmers] 멸종위기의 대장균 찾기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/301651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr MySQL을 이용하여 풀었습니다. 재귀 쿼리를 이용해 각 대장균의 세대를 정의한 테이블(ECOLI_GENERATIONS)을 정의합니다. 이후 세대 별로 타 대장균들의 부모가 아닌 대장균들을 출력합니다. ECOLI_GENERATIONS를 정의한 쿼리는 아래와 같습니다. 전체 코드는 다음과 같습니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨..

[Programmers] Python 개발자 찾기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/276013 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 간단한 SELECT문 작성 문제였습니다. MySQL을 이용하여 풀었습니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨주세요~ 반응형

백준 2170번 선 긋기

문제 링크입니다: https://www.acmicpc.net/problem/2170 2170번: 선 긋기 첫째 줄에 선을 그은 횟수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 다음 N개의 줄에는 선을 그을 때 선택한 두 점의 위치 x, y (-1,000,000,000 ≤ x < y ≤ 1,000,000,000)가 주어진다. www.acmicpc.net x와 y 값이 최대 10억이기 때문에 boolean 배열을 선언한 뒤 마킹하는 식으로 풀 수 없는 문제였습니다. 이에 따라 {x, y} 쌍을 저장하는 벡터를 선언하고 오름차순으로 정렬한 뒤 라인 스위핑 기법으로 푸는 문제였습니다. 현재 구간의 y보다 다음 구간의 x가 더 클 경우 현재 [x, y) 길이를 더함 현재 구간의 y가 다음 구간의 x와 y..

알고리즘/BOJ 2024.04.03

백준 14729번 칠무해

문제 링크입니다: https://www.acmicpc.net/problem/14729 14729번: 칠무해 조(Joe)는 중앙대학교 교수이고, 논리회로 설계 과목을 담당하고 있다. 그는 수업을 하면서 7명의 학생을 제외한 나머지 학생들에게 좋은 학점을 주겠다고 약속을 하였다. Joe 교수님을 돕기 위해 www.acmicpc.net 우선순위 큐를 이용하면 쉽게 풀 수 있는 문제였습니다. 개발환경:Visual Studio 2022 지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

알고리즘/BOJ 2024.04.03