본문 바로가기

전체 글

(127)
LV2 N개의 최소공배수 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 나무위키로 최소 공배수의 특징을 확인하였다. 세개 이상의 수의 최소 공배수를 구하기 위해서는, 두 수의 최소공배수와 새로운 수의 최소 공배수를 구하면 된다. 두 수의 최소 공배수 같은 경우에는 최대 공약수(gcd)를 통해서 구할 수 있는데, 최대공약수는 유명한 "유클리드 호제법" 으로 구할 수 있다. 따라서, 두 수의 최대 공약수를 구한 후에 이 값을 활용하여 최대 공배수를 구하는 과정..
LV2 예상 대진표 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12985# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제의 핵심은, 지금 번호가 이기면 "다음에 몇 번으로 배정되느냐" 를 아는 것이다. 그리고 a와 b의 다음 숫자가 같아지는 그 순간이 정답이 될 것이다. 예로 1과 3이라고 하면, 1은 이기면 1번으로 배정되고 3이 이기면 2로 배정된다. 이후에 1과 2로 배정된 값들의 다음값을 살펴보면 1은 1로, 2는 1로 배정될 것이다. 이렇게 같아지는 순간이 답이다. 그러면 이를 어떻게 알 ..
LV2 구명보트 (Python) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 대놓고 그리디라고 적혀있어서 그리디 방식으로 접근했다. "인원은 최대 2명" "무게는 limit 초과 되면 안됨" 두가지의 조건을 가지고 풀어야 한다. 그리디 방식으로 보트를 최소한으로 띄울려면 한 보트안에 몸무게가 많이 나가는 사람1명 + 몸무게가 적게 나가는 사람1명 방식으로 태워야 한다. 따라서 우선 몸무게가 큰 순으로 정렬을 했다. 다음에는 포인터를 두개 두었다. 하나는 무거운 ..
OAuth 회원가입, 로그인 유지를 어떻게 해야할까? OAuth 부스트캠프 학습 스프린트중에 OAuth를 구현할 일이 있었다. 요새 서비스라면 왠만하면 지원하는 기능인데, 나는 처음 구현해 보았다. 우선적으로 학습을 하고 구현을 하기로 했다. 학습에는 생활코딩 강의가 큰 도움이 되었으며 이후에 내 나름대로 흐름을 정리해보았다. https://opentutorials.org/course/3405 WEB2 - OAuth 2.0 - 생활코딩 수업소개 사용자가 가입된 서비스의 API에 접근하기 위해서는 사용자로부터 권한을 위임 받아야 합니다. 이 때 사용자의 패스워드 없이도 권한을 위임 받을 수 있는 방법이 필요합니다. 이를 위 opentutorials.org 그렇게 학습후에 간단하게 GitHub 기반 OAuth 로그인을 구현했다. 그런데 예상치 못한 문제가 있었..
LV3 110옮기기 (Python) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/77886 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 해당 문제는 "110" 을 찾아서, 어떻게 옮길지가 관건인 문제다. 우선 "사전순으로 앞서는" 숫자의 개념을 생각해보자. 10과 01이 있을경우 사전순으로 앞서는 숫자는 01이다. 10은 10진수로 2이고, 01은 1이다. 이 말은 2진수로 나타낸 숫자를 10진수로 바꾸었을때, 작은 숫자가 사전순으로 앞선다는 뜻이다. 동시에 2진수는 왼쪽일수록 가중치가 높아지기 때문에 작은 숫자를 만들..
LV3 다단계 칫솔 판매 (Python) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/77486 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 딕셔너리를 활용하여 풀었다. 첫째로 자신을 추천해준 사람을 저장해주는 recommender 두번째로 판매원들마다 수익을 저장할 income 이다. enroll과 referral 을 활용하여 recommender 를 key는 추천받은 사람, value는 추천해준 사람으로 초기화 하고, 이 때 income도 판매원마다 0으로 초기화 해준다. 이후에 수익을 계산해준다. 우선 10프로가 1원 ..
Nest JS 프로젝트 배포 자동화 하기 (3) - 스크립트 작성 (1) 편 - https://whiporithm.tistory.com/103 (2) 편 - https://whiporithm.tistory.com/104 젠킨스 스크립트 작성 및 배포 프로젝트 생성 현재 push 이벤트에 ci를 수행하는 젠킨스 프로젝트를 만들었는데, cd (배포) 프로젝트도 만들어서 ci가 이루어진 후에 cd 가 이루어지도록 설정하려고 한다. ci project -> 테스트, 도커 빌드, 도커헙에 push cd project -> 도커헙에서 pull, 도커 이미지 컨테이너화 (도커헙에 올리기 위해서 계정이 필요하니 없으면 만들자.) https://www.docker.com/products/docker-hub/ The World’s Largest Container Registry | Do..
Termius 로 ec2 ssh 접속하기 최근에 Termius 라는 프로그램을 알게 되었다. ssh 접속을 편하게 할 수 있도록 지원해주며, 강점은 모바일로도 접속할 수 있다는 점 같다. 아 그리고 테마도 여러가지여서 예쁜 gui로 실행할수도 있다! 우선 아래 링크에서 설치해보자. https://termius.com/ Termius - SSH platform for Mobile and Desktop Termius helps to organize the work of multiple DevOps and engineering teams. It reduces the admin work for managing users. Enterprise compliance. SOC2 II report. termius.com 설치후 메인화면에서 좌측상단에 "NEW ..