반응형

분류 전체보기 79

[프로그래머스] 무인도 여행 (javascript)

이 문제는 재귀식을 이용하여 해결했다. 현재 위치에서 위,아래,양옆으로 이동가능 하기 때문에 현재 위치를 이동해보며 무인도 경계까지 값을 더하는 함수를 만들었다. 재귀함수에서 break point를 먼저 정의 하고 재귀함수를 호출 부분을 추가로 구현했다. const map_arr = []; function solution(maps) { var answer = []; maps.forEach(d=>map_arr.push([...d])) console.log(map_arr); for(i=0; ia-b); } function calculateIsland(i, j){ if(i=map_arr[0].length ){ return 0; } if(map_arr[i][j] === 'X'){ return 0; } const..

STUDY/알고리즘 2023.09.08

[프로그래머스] 개인정보 수집 유효기간 (javascript)

https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(today, terms, privacies) { var answer = []; const todayAsNumber = Number(today.replaceAll('.','')); console.log(todayAsNumber); const finishDates = []; const termMap = new Map(); //map으로 보관기간 정리 for(let t..

STUDY/알고리즘 2023.09.03

텐서플로우 리눅스에서 설치하기

가상 환경을 만들어주고 (버전이랑 패키지 관리 가능하기 때문) 가상 환경을 activate 해준다. python3 -m venv ./study_tensorflow source study_tensorflow/bin/activate 그리고 tensorflow를 설치해 준다. pip install nvidia-cudnn-cu11==8.6.0.163 tensorflow==2.13.* 또는 # Requires the latest pip pip install --upgrade pip # Current stable release for CPU and GPU pip install tensorflow # Or try the preview build (unstable) pip install tf-nightly 그리고 나는..

STUDY 2023.08.16

쿠버네티스 배포 전략 종류 (rolling update, recreate ...)

Kubernetes 배포를 사용하면 포드 및 ReplicaSet를 선언적으로 생성할 수 있다. 원하는 상태를 정의할 수 있으며 배포 컨트롤러는 관련 리소스의 현재 상태를 지속적으로 모니터링하고 원하는 상태에 맞게 포드를 배포한다. 배포 전략은 다양한 버전의 Kubernetes 애플리케이션을 생성, 업그레이드 또는 다운그레이드하는 방법을 정의한다. 기존 소프트웨어 환경에서 애플리케이션을 배포하거나 업그레이드하면 다운타임과 서비스 중단이 발한다. Kubernetes는 여러 애플리케이션 인스턴스에 대한 롤링 업데이트를 수행하고 가동 중지 시간을 피하거나 최소화할 수 있는 몇 가지 배포 전략을 제공하여 이를 방지할 수 있다. Kubernetes 배포 전략에 대해 알아보자. Rolling deployment Re..

github workflow 작성하기 (pull request CI)

github action으로 CI를 할 수 있다. push, pull request, 배포 할 때 주로 사용해 봤다. 이번에는 pull request를 생성할 때 validation 하는 workflow와 배포할 때 CI하는 workflow를 작성했다. 방법은 아래와 같다. 우선 root에 .github 폴더를 생성하고 그 아래 workflow 폴더를 생성한다. 생성한 폴더에 pullrequest.yml 파일을 생성한다. name: pull request on: # 만약 master에 push 될 때도 작동시키고 싶으면 아래 주석한것을 사용하면 된다. # push: # branches: # - master pull_request: branches: - '*' # 모든 브랜치 jobs: pull_reque..

경사하강법

모델링에서 가장 중요한 것은 손실 함수(비용 함수)를 최적화 시키는 것이라 생각한다. 손실 함수에 따라 모델링의 정확도가 달라지기 때문이다. 손실 함수, 비용 함수는 최소값을 찾는 함수여서 아래로 볼록한 함수를 갖는다. 그 최솟값을 경사하강을 사용하여 찾는다. 경사하강법는 최적화 기법으로 원리는 가장 가파른 방향을 선정하여 최솟값에 빠르게 도달하는 것이다. 그것을 테일러 급수로 표현할 수 있다. $$ f(x+\Delta x)=f(x)+\frac{f(x)'}{1!}\Delta x+\frac{f(x)''}{2!}\Delta x^2+\frac{f(x)'''}{3!}\Delta x^3 $$ 경사하강법 예제 예제는 y=3x+2라는 회귀식을 예측해보는 것이다. In [3]: import numpy as np imp..

📕객체지향의 사실과 오해📕

예전에 면접에서 OOP에 대한 질문이 있었다. 아마 그때의 내 대답은 OOP의 특징을 나열하면서 답변 했던 것 같다. 이 책을 읽으면서 다음 면접 때 OOP 질문이 온다면 어떻게 대답해야할 지 생각하면서 읽게 됐다. 책의 내용을 요약해보면 아래와 같다. 객체지향프로그래밍(OOP)은 이름 그대로 객체를 지향한다. 시스템을 객체로 분류하고 시스템을 구현하기 위해 다른 객체와 협력한다. 각 객체는 협력 내에서 정해진 역할을 수행하고 메세지를 통해 다른 객체와 협력을 한다. 그 메세지를 처리하는 적합한 메서드를 자율적으로 선택한다. OOP의 특징인 추상화, 상속을 통해 객체 간의 연결이 유연해진다. 또 두 특징을 통해 객체의 일반화를 할 수 있고 이게 다른 객체로 쉽게 갈아 낄 수 있도록 한다. 이정도면 OOP..

정리하기 2023.07.27

chatGPT 쿼리 튜닝 꽤나 잘해준다.

Elastic search 쿼리에 튜닝이 필요했는데, ES 쿼리에 익숙하지 않아 맘만 먹었지 실행에 옮기기는 쉽지 않았다. 그래서!! chatGPT한테 물어봤다. 꽤나 친절한것 같다. 그래서 쿼리의 의도성과 해결하고 싶은 문제를 같이 알려줬다. (ChatGPT가 튜닝해준 쿼리) 개선된 쿼리에서 주목해야 할 사항은 다음과 같습니다: (쿼리 설명) 이러한 개선 사항을 적용하면 쿼리의 실행 속도가 향상될 수 있습니다. 그러나 이는 일반적인 가이드일 뿐이며, 실제 성능 개선은 데이터의 특성과 클러스터 구성에 따라 다를 수 있습니다. 성능 테스트와 모니터링을 통해 최적의 결과를 얻을 수 있습니다. 근데 나는 얘가 알려준 쿼리가 조금 맘에 들지 않았다. 내가 제거 하고 싶은 부분을 추가적으로 알려줬다. 나_ scr..

[아두이노] Servo 사용해보기

앞에서 전구나, 소리를 내는 것을 이용해 아두이노를 실습했다. 이번에는 서보를 이용한 실습을 해봤다. 서보모터는 관절 역할을 하는 모터이다. 서보 모터는 방향을 조절할 수도 있고 로봇의 팔이 될 수도 있다. 서보 모터는 0~ 180도 사이에서 움직 일 수 있다. Servo.h는 서보모터를 제어하는 라이브러리다. 아래의 코드처럼 라이브러리를 import할 수 있다. 아래 코드는 간단하게 서보모터를 움직이는 코드이다. #include const int SERVO = 10; Servo servo; void setup(){ servo.attach(SERVO); servo.write(0); delay(1000); for(int angle=0; angle

아두이노 2023.05.18
반응형