2024/05 5

[Effective Java : Item 86] Serializable을 구현할지는 신중히 결정하라

개요 특정 클래스의 인스턴스를 직렬화하고 싶다면 Serializable을 구현하도록 클래스 선언에 implements Serializable만 붙이면 된다. Serializable 내부적으로 구현이 강제되는 메서드 또한 존재하지 않아 쉽게 적용할 수 있다고 생각될 수 있으나, 실상은 직렬화를 구현한다는 것은 훨씬 복잡하고 값비싼 일이다.  Serializable 구현 시 주의할 점 1. 릴리스한 뒤에는 수정하기 어렵다.Serializable을 구현하면 직렬화된 바이트 스트림 인코딩도 하나의 공개 API가 되는 셈이다. 따라서 릴리스가 된 뒤에는 이 직렬화 형태도 영원히 지원해야 한다. 또한 커스텀 직렬화 형태를 사용하지 않고 자바의 기본 직렬화를 사용한다면 최초 직렬화 당시 클래스의 내부 구현 방식에 묶..

Backend/Java 2024.05.08

[🥈2 / 백준 17103 / 파이썬] 골드바흐 파티션

https://www.acmicpc.net/problem/17103  문제골드바흐의 추측: 2보다 큰 짝수는 두 소수의 합으로 나타낼 수 있다. 짝수 N을 두 소수의 합으로 나타내는 표현을 골드바흐 파티션이라고 한다. 짝수 N이 주어졌을 때, 골드바흐 파티션의 개수를 구해보자. 두 소수의 순서만 다른 것은 같은 파티션이다. 입력첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 N은 짝수이고, 2  출력각각의 테스트 케이스마다 골드바흐 파티션의 수를 출력한다.  예제 입력5 6 8 10 12 100 예제 출력1 1 2 1 6  풀이 에라토스테네스의 체로 N의 최대값 만큼 소수 목록을 구한 뒤 테스트 케이스별로 순회하며 골드바흐 파티션..

[Lv.3 / 프로그래머스 / SQL] 물고기 종류 별 대어 찾기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr    풀이 종류별로 가장 큰 물고기의 길이와 그 물고기의 ID를 출력해야 한다.  물고기의 ID를 출력해야 하는 부분 때문에 단순히 집계 함수로 문제를 해결할 수 없다.따라서 물고기의 종류별로 가장 긴 실제 레코드를 서브쿼리로 구한 뒤 메인 쿼리와 비교하여 해결해야 한다.NAME을 출력해야 하는 부분은 INNER JOIN을 통해 해결할 수 있다. SELECT ID, FISH_NAME, LENGTHFROM FISH_INFO AS FIINNER JOIN FISH_NAME_INFO AS FN..

[Lv.1 / 프로그래머스 / SQL] 특정 형질을 가지는 대장균 찾기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 비트연산자를 통해 보유 형질 조건을 판별해야 한다. 비트연산을 수행할 때, 세 번째 형질을 나타내는 비트는 100인데, 이를 십진수로 표현하면 3이 아니라 4임에 유의하자. SELECT COUNT(1) AS COUNTFROM ECOLI_DATAWHERE (GENOTYPE & 1 OR GENOTYPE & 4) AND !(GENOTYPE & 2)

[Lv.2 / 프로그래머스 / SQL] 분기별 분화된 대장균의 개체 수 구하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   풀이 분기별 대장균 개체의 수를 구해야 한다. CASE문과 집계 함수인 COUNT를 이용해 조건별로 분기별 대장균 개체의 수를 구할 수 있다.  SELECT CASE WHEN MONTH(DIFFERENTIATION_DATE)

반응형