문제 1124번: 언더프라임 자연수 X를 소인수분해하면, 곱해서 X가 되는 소수의 목록을 얻을 수 있다. 예를 들어, 12 = 2 × 2 × 3이다. 1은 소수가 아니다. 어떤 수 X를 소인수분해 해서 구한 소수의 목록의 길이가 소수이면, www.acmicpc.net 자연수 X를 소인수분해하면, 곱해서 X가 되는 소수의 목록을 얻을 수 있다. 예를 들어, 12 = 2 × 2 × 3이다. 1은 소수가 아니다. 어떤 수 X를 소인수분해 해서 구한 소수의 목록의 길이가 소수이면, 그 수를 언더프라임 이라고 한다. 12는 목록에 포함된 소수의 개수가 3개이고, 3은 소수이니 12는 언더프라임이다. 두 정수 A와 B가 주어졌을 때, A보다 크거나 같고, B보다 작거나 같은 정수 중에서 언더프라임인 것의 개수를 구..
문제 24040번: 예쁜 케이크 Good Bye BOJ, 2021!이 열리는 오늘, 12월 31일은 종서의 생일이다. $N$ 명의 친구들은 종서에게 생일 선물로 예쁜 케이크를 만들어주려 한다. 여기에서, 예쁜 케이크는 다음과 같은 조건을 만족하는 www.acmicpc.net Good Bye BOJ, 2021!이 열리는 오늘, 12월 31일은 종서의 생일이다. N명의 친구들은 종서에게 생일 선물로 예쁜 케이크를 만들어주려 한다. 여기에서, 예쁜 케이크는 다음과 같은 조건을 만족하는 케이크를 의미한다. 케이크는 높이가 1$1$이고, 부피가 N인 직육면체 모양이다. 케이크를 적절히 칼질해서 한 변의 길이가 1인 정육면체 모양 조각 N개로 나눌 수 있어야 한다. 케이크의 옆면에 가로 너비가 1인 직사각형을 이어..
⚠ Vault란? HashiCorp Vault는 ID 기반 시크릿 및 암호화 관리 시스템입니다. 여기서 시크릿은 API 암호화 키, 비밀번호, 인증서 등 액세스를 엄격하게 제어하고자 하는 모든 것을 아우릅니다. Vault는 인증(authentication) 및 인가(authorization) 방법에 따라 게이트화된 암호화 서비스를 제공합니다. Vault의 UI, CLI 또는 HTTP API를 사용하여 기밀 및 기타 중요 데이터에 대한 액세스를 안전하게 저장 및 관리하고, 엄격하게 제어(restrict)하며, 감사(audit)할 수 있습니다. 🎮 초기화 $ go mod init vault-example $ touch main.go $ touch docker-compose.yml $ go get github..
🪓 우아하지 않은 종료 다음과 같이 모든 요청에 "hello world"로 응답하는 간단한 http 서버가 있습니다. 코드의 실행 순서는 다음과 같습니다. DB 연결 http 서버 시작 http 서버 종료 DB 연결 종료 package main import ( "context" "database/sql" "log" "net/http" _ "github.com/mattn/go-sqlite3" ) func main() { // 1. DB 연결 db, err := ConnectDB() if err != nil { log.Fatal(err) } log.Println("DB connection established") srv := &Server{ Server: &http.Server{ Addr: ":8080", ..
📺 시리즈 2023.10.02 - [Go/디자인 패턴] - [Go] SOLID in Go - SOLID란? 2023.10.03 - [Go/디자인 패턴] - [Go] SOLID in Go - 구조체와 메서드 2023.10.04 - [Go/디자인 패턴] - [Go] SOLID in Go - 인터페이스 2023.10.09 - [Go/디자인 패턴] - [Go] SOLID in Go - 컴포지션 2023.10.10 - [Go/디자인 패턴] - [Go] SOLID in Go - 패키지 2023.10.11 - [Go/디자인 패턴] - [Go] SOLID in Go - 단일 책임 원칙 2023.10.12 - [Go/디자인 패턴] - [Go] SOLID in Go - 개방 폐쇄 원칙 2023.10.13 - [Go/디자인..
문제 21920번: 서로소 평균 첫 번째 줄에 입력될 수들의 개수 $N$이 주어진다. $(2 \le N \le 500,000)$ 두 번째 줄에는 수열 $A$를 이루는 자연수 $Ai$ 가 공백으로 구분되어 주어진다. $(2 \le A_{i} \le 1,000,000)$ 수열 $A$에 $X$와 서로 www.acmicpc.net 효성이는 길이가 N인 수열 A에서 X와 서로소인 수들을 골라 평균을 구해보려고 한다. 효성이를 도와 이를 계산해주자. 입력 첫 번째 줄에 입력될 수들의 개수 N이 주어진다. (2≤ N ≤500,000) 두 번째 줄에는 수열 A를 이루는 자연수 Ai 가 공백으로 구분되어 주어진다. (2≤A ≤1,000,000) 수열 A에 X와 서로소인 수가 최소 1개 이상 존재한다. 마지막 줄에는 X가..
문제 11815번: 짝수? 홀수? B를 A로 나누었을 때 나머지가 0 이라면 A는 B의 약수라고 할 수 있다. (A > 0, B > 0) 예를 들면 15 의 약수는 1, 3, 5, 15 이다. 주어진 수가 가지는 약수 개수가 홀수인지 짝수인지 판별해보자. www.acmicpc.net B를 A로 나누었을 때 나머지가 0 이라면 A는 B의 약수라고 할 수 있다. (A > 0, B > 0) 예를 들면 15 의 약수는 1, 3, 5, 15 이다. 주어진 수가 가지는 약수 개수가 홀수인지 짝수인지 판별해보자. 입력 첫 번째 줄에는 전체 테스트 개수 (N) 가 주어진다. (1 ≤ N ≤ 100) 두 번째 줄에는 약수 개수를 판별할 수 (X) 가 주어진다 (1 ≤ X ≤ 1018). 출력 주어진 수의 약수 개수가 홀..
📺 시리즈 2023.10.02 - [Go/디자인 패턴] - [Go] SOLID in Go - SOLID란? 2023.10.03 - [Go/디자인 패턴] - [Go] SOLID in Go - 구조체와 메서드 2023.10.04 - [Go/디자인 패턴] - [Go] SOLID in Go - 인터페이스 2023.10.09 - [Go/디자인 패턴] - [Go] SOLID in Go - 컴포지션 2023.10.10 - [Go/디자인 패턴] - [Go] SOLID in Go - 패키지 2023.10.11 - [Go/디자인 패턴] - [Go] SOLID in Go - 단일 책임 원칙 2023.10.12 - [Go/디자인 패턴] - [Go] SOLID in Go - 개방 폐쇄 원칙 2023.10.13 - [Go/디자인..
🍇 아파치 카프카 (Apache Kafka)? 아파치 카프카는 분산 데이터 스트리밍 플랫폼으로, 대용량의 데이터를 안정적으로 실시간 전송하고 저장하기 위한 오픈 소스 시스템입니다. 아파치 카프카는 메시지를 파일 시스템에 저장함으로써 기존의 AMQP 기반 메시징 큐와 달리 데이터를 재사용할 수 있다는 특징을 가지고 있습니다. 이외에도 많은 특징이 있지만, 이번 게시글에서는 아파치 카프카에 대한 소개를 보다는, 간단한 예제를 통해 카프카를 메시징 큐로써 사용하는 방법을 연습해 보겠습니다. 🎁 패키지 선택 Go에서 사용할 수 있는 아파치 카프카 관련 패키지는 대표적으로 3개를 꼽을 수 있습니다. sarama: 가장 많은 스타를 보유하고 있습니다. 예제가 있긴 하지만 위키랑 README에 글로만 설명을 해놔서 ..
문제 9417번: 최대 GCD 첫째 줄에 테스트 케이스의 개수 N (1 < N < 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 양의 정수 M (1 < M < 100)개가 주어진다. 모든 수는 -231보다 크거나 같고, 231 -1보다 작거나 www.acmicpc.net 정수 M개가 주어졌을 때, 모든 두 수의 쌍 중에서 가장 큰 최대공약수 찾는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 N (1 < N < 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 양의 정수 M (1 < M < 100)개가 주어진다. 모든 수는 -231보다 크거나 같고, 231 -1보다 작거나 같다. 출력 각 테스트 케이스마다, 입력으로 주어진 수의 모든 두 수의 쌍의 최..