전체 글

공부와 경험의 기록!
·Algorithm (PS)
https://www.acmicpc.net/problem/2631 2631번: 줄세우기 KOI 어린이집에는 N명의 아이들이 있다. 오늘은 소풍을 가는 날이다. 선생님은 1번부터 N번까지 번호가 적혀있는 번호표를 아이들의 가슴에 붙여주었다. 선생님은 아이들을 효과적으로 보호하기 www.acmicpc.net 문제의 핵심은 옮기는 학생의 최소 수를 구하는 것이고, 옮기는 학생의 최소 수는 전체 배열의 길이 - 가장 긴 증가하는 수열의 길이 와 같다. 가장 긴 증가하는 수열의 길이는 dp 를 이용하여 구할 수 있다. 우선 dp 의 값을 1로 초기화 한다. 그 이유는 '자기 자신' 만 포함하는 길이가 1 인 수열부터 시작하게 되기 때문이다. dp = [1] * (N+1) for i in range(1, N+1):..
Amazon Kendra는 NLP 와 ML 알고리즘을 사용하여 연결된 데이터 레포지토리 (인덱스)에서 검색 질문에 대해 특정한 답변을 반환하는 서비스이다. Amazon Kendra는 S3나 Lex 등의 서비스에 연결하여 사용할 수 있다. S3는 데이터 레포지토리로 사용하여 연동할 수 있으며, Lex의 경우 Kendra+Lex 조합으로 챗봇을 만들 수 있다. 데이터 레포지토리에는 '문서' 를 넣을 수 있고 pdf, csv... 등 다양한 파일 형식을 지원한다. 영어 이외의 언어로 되어있는 문서 또한 데이터 소스에 추가할 수 있으며, 한국어로 된 문서도 잘 읽힌다. https://docs.aws.amazon.com/ko_kr/kendra/latest/dg/what-is-kendra.html Amazon Ke..
·Algorithm (PS)
https://school.programmers.co.kr/learn/courses/30/lessons/84021 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # https://school.programmers.co.kr/learn/courses/30/lessons/84021 from collections import deque dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def get_position(sx, sy, table, visited, mode): one_piece = [(0, 0)] # 한 조각을 이루는 좌표 리스트 v..
Deadlock : 일련의 프로세스들이 서로가 가진 자원을 기다리며 block 이 된 상태 Resource 자원으로, software 자원일 수도 있고 hardware 자원이 될 수도 있다. ex. I/O device, CPU cycle, memory space, semaphore 프로세스가 자원을 사용하는 절차 ex. Request, Allocate, Use, Release https://core.ewha.ac.kr/publicview/C0101020170412134857472082
·Algorithm (PS)
https://www.acmicpc.net/problem/14714 14714번: 홍삼 게임 (Easy) 첫 번째 줄에 “질서 있는 홍삼 게임”의 참가자의 수 N(2 ≤ N ≤ 500), 은하가 먼저 지목한 사람의 번호 A와 두 번째로 지목한 사람의 번호 B(1 ≤ A, B ≤ N, A ≠ B), 각 지목권의 지목 간격을 나타내 www.acmicpc.net 문제 유형을 보면 힌트를 얻을 수 있는데, BFS를 사용하여 풀 수 있는 문제였다.. 방문 처리를 할 때 지목권 a를 가질 사람을 탐색 & 지목권 b를 가질 사람을 탐색 해야 하며 각 turn 마다 지목은 한번만 하므로 이를 3차원 배열로 나타낼 수 있다는 것이 이 문제의 핵심이었다 즉 이를 3차원 배열로 표현하게 되면 visited[지목권 종류][a..
1. Bouned-Buffer Problem 공유 데이터에 관련한 고전적인 '동기화' 문제이다. producer-consumer 문제라고도 한다. 문제점 1) Producer 발생 할 수 있는 문제 : 생산자는 데이터를 만들어서 집어 넣는 역할. 생산자 둘이 동시에 비어있는 버퍼에 도착하는 경우, 동시에 데이터를 생성하게 되면 문제가 발생한다. 해결 방법 : 공유 데이터에 lock 을 걸어서 다른 producer 및 consumer 가 접근하지 못하도록 방지한다. 그 후, 데이터 입력 작업이 끝나면 Lock 을 해제 하여 다른 producer나 consumer가 접근할 수 있도록 한다. 그리고 full buffer를 하나 증가시킨다. (buffer count) 2) Consumer 발생할 수 있는 문제 ..
회사를 다니면서 돈을 버니까 장비를 구매하게 되는데, 우선 한달동안 고민하다가 산 키보드를 소개하려고 한다. 내가 주로 찾아본 것은 사무실용 '저소음', '기계식', '블루투스', '텐키리스' 위주로 찾아보게 되었다. 기존에 키크론 적축을 사용했었는데, 이게 은근히 소음이 있어서 혼자 쓸땐 상관없었으나 사무실에서 쓸 용도로 조금 더 조용한걸 찾게 되었다. 나는 아래의 키보드들을 찾아보고 비교를 하게 되었다. 키크론 k8pro 레오폴드 FC900R 저소음 적축 키보드 씽크웨이 토체프 체리 저소음적축 그렇다.. 위의 3개를 보면 대충 내 취향이 나오는데 난 내가찾는 조건 (저소음적축, 텐키리스, 블루투스지원) + 디자인을 많이 봤다 그런데 마침 회사 분들이 씽크웨이, 한성키보드를 사용중이어서 직접 타건 비교..
boto3 library 가 없으면 우선 pip3 install boto3 명령어로 설치해주자. 또한 AWS 콘솔에서 ACCESS_KEY 와 SECRET_ACCESS_KEY 발급이 필요하다 !! 다음으로 S3 버킷 연결을 위한 connection을 생성하는 과정이다 client() 함수로 연결을 생성한다. import boto3 def s3_connection(): try: s3 = boto3.client( service_name="s3", region_name="ap-northeast-2", aws_access_key_id=AWS_ACCESS_KEY, aws_secret_access_key=AWS_SECRET_ACCESS_KEY ) except Exception as e: print(e) else: p..
minjiwoo
MJ workspace