분류 전체보기

C,C++

[C++] Mac os 에서 Mysql 연결하기

Mac os 환경에서 C++를 사용해서 Mysql과 연동하여 소스코드를 작성하는 방법을 보자. 일단, 해당글에서는 mac os 에 mysql 은 이미 설치되었다고 가정하고 설명을 진행하겠다. 1. mysql-connector-c++ 설치 2023.08.12 기준, homebrew 를 통해서 설치가능한 c++ mysql connector의 최신버전은 8.0.33_1 버전이다. 터미널을 열어서 아래와 같은 명령어를 실행시켜주자. brew install mysql-connector-c++ 그리고 homebrew를 통해서 설치된 라이브러리가 존재하는 디렉터리로 이동해 보자. 아래의 주소는 각자의 환경마다 다를 수 있으니 참고만 하자. 위에서 mysql-connector-c++ 디렉터리에 접근해 보자. 아래와 같..

코딩 테스트

[백준] 14567번 - 선수과목(Prerequisite)

https://www.acmicpc.net/problem/14567 14567번: 선수과목 (Prerequisite) 3개의 과목이 있고, 2번 과목을 이수하기 위해서는 1번 과목을 이수해야 하고, 3번 과목을 이수하기 위해서는 2번 과목을 이수해야 한다. www.acmicpc.net 문제이해 첫 번째 입력으로 N M 이 주어지고 N 은 총과목수를 뜻하고, M은 (특정과목을 듣기 위한 선수과목 번호 , 특정과목 번호) 순서쌍의 개수를 뜻한다. 예를 들어 3 2 2 4 1 2 와 같이 입력이 주어진다면, 들어야 할 과목은 총 3과목이며, 특정과목을 듣기 위한 선수과목 번호 , 특정과목 번호) 순서쌍의 개수는 2개이다. 첫 번째 행에서 2 4의 뜻은 4번 과목을 듣기 위해서는 2번 과목을 먼저 들어야 한다는..

Python

[Python] can't subtract offset-naive and offset-aware datetimes

문제상황 파이썬으로 코딩을 하다 보면, 타임존에 맞추어 날짜 계산을 해야 하는 경우가 더러 있다. 아래의 코드를 참고하자. import pytz from datetime import datetime def main(): korea_tz = pytz.timezone('Asia/Seoul') now_time = datetime.now(tz=korea_tz) previous_time = datetime.strptime('2023-07-01T20:32:21Z', "%Y-%m-%dT%H:%M:%SZ") print(now_time - previous_time) """ main function - execute """ if __name__ == '__main__': main() 위의 코드는 timezone 이 한국인..

코딩 테스트

[백준] 2623번 - 음악프로그램

https://www.acmicpc.net/problem/2623 2623번: 음악프로그램 첫째 줄에는 가수의 수 N과 보조 PD의 수 M이 주어진다. 가수는 번호 1, 2,…,N 으로 표시한다. 둘째 줄부터 각 보조 PD가 정한 순서들이 한 줄에 하나씩 나온다. 각 줄의 맨 앞에는 보조 PD가 담당한 www.acmicpc.net 문제이해 해당 문제는 위상정렬 알고리즘을 사용하는 대표적인 문제이다. 첫 번째 행에서 주어진 N은 가수팀의 개수이며, M 은 보조 PD 인원수이다. 두 번째 행 이상부터는 첫 번째 열은 해당 보조 PD 가 담당한 팀의 개수를 의미하고, 두 번째 열 이상부터는 가수들의 출연순서가 나오게 된다. 알고리즘 분석 해당 문제도 다른 위상정렬 문제처럼 아래와 같은 순서를 따라 풀이하면 된..

코딩 테스트

[백준] 2252번 - 줄 세우기

https://www.acmicpc.net/problem/2252 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 문제이해 해당 문제는 위상정렬 알고리즘을 사용하는 대표적인 문제이다. 첫 번째 행에서 주어진 N 은 줄을 세워줄 총 학생수이다. 첫 번째 행에서 주어진 M 은 키를 비교할 횟수를 의미한다. 위의 예제처럼 첫 번째 행에 3 2 가 주어지면, 줄 세울 학생은 총 3명이며, 비교할 횟수는 2회이다. 두 번째 행부터는 비교를 수행한다. A B -> 이런 식으로 ..

코딩 테스트

[백준] 1516번 - 게임 개발

https://www.acmicpc.net/problem/1516 1516번: 게임 개발 첫째 줄에 건물의 종류 수 N(1 ≤ N ≤ 500)이 주어진다. 다음 N개의 줄에는 각 건물을 짓는데 걸리는 시간과 그 건물을 짓기 위해 먼저 지어져야 하는 건물들의 번호가 주어진다. 건물의 번호는 1부 www.acmicpc.net 문제 이해 첫 번째 행은 N 개의 건물을 지정해 주는 숫자이다. 두 번째 행부터는 첫 번째 열은 해당 건물을 만들기 위해 걸리는 시간을 뜻한다. 그리고, 두번째 이상 열부터는 해당 건물을 만들기 위해 선행되어야 하는 건물 번호이다. 위의 예제에서 보면 2번째 건물의 행을 보면 10 1 -1 로 되어있다. (-1은 입력이 끝났다는 표시로 이해하면 된다.) 2번째 건물을 짓기 위해서는 최소..

코딩 테스트

[백준] 1915번 - 가장 큰 정사각형

https://www.acmicpc.net/problem/1915 1915번: 가장 큰 정사각형 첫째 줄에 n, m(1 ≤ n, m ≤ 1,000)이 주어진다. 다음 n개의 줄에는 m개의 숫자로 배열이 주어진다. www.acmicpc.net 문제 이해 주어진 2-dimension array에서 가장 큰 정사각형의 넓이를 구해주는 문제이다. 문제에서 주어진 예시에서 가장 큰 정사각형의 넓이는 2 x 2 = 4라고 할 수 있다. 그럼 과연, 알고리즘적으로 어떻게 설계해야 가장 큰 정사각형을 찾을 수 있을까? 일단 아래와 같이 해당 이중배열에서, 특정 원소를 M(i, j) 라고 해주자. 그럼 아래와 같은 점화식을 통해서, 가장 큰 정사각형의 한 변의 길이를 찾을 수 있다. [ 단, 아래의 점화식은 M(i,j)..

Redis

[Redis] key 삭제 api 구현

Redis 관리 업무를 보거나, Redis를 통해서 개발을 한 경험이 있는 프로그래머라면, 한 번쯤 Redis에서 특정 key 패턴을 만족하는 모든 키를 지워줘야 하는 상황을 만날 수 있다. 이럴 경우 redis-cli 에 접속해서 key 값 하나하나씩 삭제하는 방식은 key의 개수가 별로 크지 않을 때에는 상관없지만, 실제로 운영되는 Redis 데이터 베이스에서는 특정 key 패턴을 만족하는 key의 개수가 엄청 많기 때문에, 사실상 위의 방법은 불가능하다고 봐야 한다. 그럼 해당 기능이 필요할 때마다, 간단하게 사용할 수 있는 api를 만들어두면 업무를 수행하는데 훨씬 편해질 것이다. 해당 기능을 수행하는 api 를 python을 통해서 구현해 보자. 일단 특정 키패턴을 만족하는 모든 키를 삭제해 주..

Redis

[Redis] Key 삭제

Redis Key 란? Redis는 인메모리 데이터 스토어로서, 키-값(key-value) 쌍을 저장하고 관리하는 데 사용한다. Redis의 핵심 원칙 중 하나는 데이터 모델이 간단하고 유연하다는 것이며, 이는 Redis의 모든 데이터가 고유한 키로 식별된다는 의미를 갖는다. Redis 에서 키(Key)는 Redis에서 데이터를 저장하고 검색하기 위한 고유한 식별자이다. 키는 문자열 형태로 저장되며, Redis의 다양한 데이터 유형(문자열, 해시, 목록, 집합, 정렬된 집합 등)을 다루는 데 사용된다. Redis의 키는 일반적으로 명명 규칙에 따라 구성되는데, 이는 개발자가 데이터를 쉽게 식별하고 접근할 수 있도록 도와준다. Redis의 키(Key)는 일반적인 작업으로는 데이터 저장, 조회, 수정, 삭제..

Elasticsearch

[Elasticsearch] 검색성능 비교

검색이란? 검색은 정보를 찾기 위해 인터넷이나 컴퓨터 데이터베이스 등을 통해 특정한 키워드나 질의문을 이용하여 원하는 정보를 찾는 과정을 말한다. 검색 엔진을 통해 수많은 웹 페이지, 문서, 이미지, 동영상 등이 색인화되어 있어 사용자가 키워드를 입력하면 해당 키워드와 관련된 정보를 검색 결과로 제공한다. 검색은 다양한 형태로 이루어질 수 있다. 가장 기본적인 검색은 텍스트 기반의 검색이며, 사용자가 키워드나 질의문을 입력하여 관련된 문서를 찾는다. 이외에도 이미지 검색, 동영상 검색, 뉴스 검색, 지도 검색 등 다양한 형태의 검색이 가능하다. 검색 엔진은 크롤러라고 불리는 프로그램을 이용하여 웹 페이지를 수집하고, 이를 색인화하여 검색 결과를 생성한다. 대표적인 검색 엔진으로는 Elasticsearch..

ssh9308
'분류 전체보기' 카테고리의 글 목록 (5 Page)