본문 바로가기

전체 글138

Programmers - 부족한 금액 계산하기 https://programmers.co.kr/learn/courses/30/lessons/82612 코딩테스트 연습 - 1주차_부족한 금액 계산하기 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 풀이 필요한 전체 금액을 구하고 가지고 있는 money보다 크면 부족한 금액만큼, 같거나 작으면 0을 return using namespace std; long long solution(int price, int money, int count) { long long sum=0; for(int i=1;i 2021. 9. 14.
Spring Cloud - 서비스 디스커버리 Netflix의 Eureka를 이용해서 디스커버리 서비스를 구현 클라우드 환경이 되면서 서비스가 오토 스케일링등에 의해서 동적으로 생성되거나 컨테이너 기반의 배포로 인해서, 서비스의 IP가 동적으로 변경. 이 때, 서비스 클라이언트가 서비스를 호출할때 서비스의 위치 (즉 IP주소와 포트)를 알아낼 수 있는 기능을 서비스 디스커버리(Service discovery)라고 부름 클라이언트 사이드 디스커버리 패턴(Client-Side Discovery Pattern) 서비스 인스턴스의 네트워크 위치를 찾고 로드밸런싱하는 역할을 클라이언트가 담당하는 방식 서버 사이드 디스커버리 패턴(Server-Side Discovery Pattern) 서버 쪽에서 디스커버리 로직을 구현한 방식 Eureka 서버와 클라이언트 d.. 2021. 9. 14.
AWS, Docker를 이용한 간단한 웹사이트(2)-AWS 작업 https://jangcenter.tistory.com/30에서 이어짐 AWS, Docker를 이용한 간단한 웹사이트(1)-docker 작업 자기소개 페이지 제약사항 Docker Container로 DB와 프론트 페이지를 실행 (DBMS 및 Web Server의 종류는 무관) EC2 인스턴스(프리티어 범주내)를 하나 생성해서 해당 인스턴스에서 1번의 도커 컨테이너를 jangcenter.tistory.com 인스턴스 생성 프리티어 생성(Amazon Linux -> t2.micro) 기본 VPC 생성 생성한 기본 VPC 할당 보안그룹에 SSH, HTTP 추가 이후 기본 설정 인스턴스 접속 docker 설치 [ec2-user@~~~~~]$ sudo yum -u upgrade [ec2-user@~~~~~]$ s.. 2021. 9. 9.
AWS, Docker를 이용한 간단한 웹사이트(1)-docker 작업 자기소개 페이지 제약사항 Docker Container로 DB와 프론트 페이지를 실행 (DBMS 및 Web Server의 종류는 무관) EC2 인스턴스(프리티어 범주내)를 하나 생성해서 해당 인스턴스에서 1번의 도커 컨테이너를 실행 프론트 페이지에서 필요로 하는 데이터는 Lambda, API Gateway를 이용해서 제공할 수 있도록 구현 Docker 설치 https://www.docker.com/get-started Get Started with Docker | Docker Learn about the complete container solution provided by Docker. Find information for developers, IT operations, and business exec.. 2021. 9. 8.
Programmers - 문자열 압축(Python) https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 풀이 1 ~ s의 길이//2 만큼 단위를 늘려가면서 탐색 단위 만큼 확인 하면서 같다면 cnt갱신 다르면 cnt를 포함한 단위 문자열을 추가 def solution(s): MIN=int(987654321) length=len(s) if(len(s)==1): return 1; for cut in range(1, length//2+1): # 문자열 단위 1 .. 2021. 9. 6.
Programmers - 자물쇠와 열쇠(C++) https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 풀이 자물쇠 크기 재할당 (2 x (열쇠크기-1) + 자물쇠크기) x (2 x (열쇠크기-1) + 자물쇠크기) 후 정중앙에 자물쇠 값 할당 더보기 재할당된 자물쇠에서 한칸씩이동, 90회전으로 모든 경우의 수를 탐색 - 열쇠의 사이즈만큼 자물쇠 배열에 + 연산 - 실제 자물쇠의 영역을 확인 -> 값이 1이 아니라면 return false - returen false로 빠져나가는 것이 없다면 return true .. 2021. 9. 5.
BOJ 12100 - 2048(Easy)(C++) https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 풀이 상하좌우를 이용한 5번 이동에 모든 경우의 수를 탐색 해당 경우에 대해 이동(상하좌우 모든 경우에 대한 이동을 구현하지 않고 위로 이동에 대한 이동만 구현) - 상하좌우에 따라 회전 - 상 : 0˚, 하: 180˚, 좌 : 90˚, 우: 270˚ - 위로 이동 - 다시 제자리로 회전 - 상 : 0˚, 하: 180˚, 좌 : 270˚, 우: 90˚ - 5번의 이동이.. 2021. 9. 2.
BOJ 12015 - 가장 긴 증가하는 부분 수열2(C++) https://www.acmicpc.net/problem/12015 12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net 풀이 벡터의 초기 상태 {0} 현재 입력 값이 벡터의 마지막 값보다 크면 -> 벡터에 push_back 작으면 -> lower_bound를 이용해 입력값보다 작거나 큰 위치를 찾아내서 교환 벡터의 초기값 0을 제외해야하기 때문에 v.size() - 1을 출력 더보기 ex) {10, 20, 30, 5, 10, 20, 30, 40} 0. {0} 1. 10 마지막 값보다 큼 {0, 10} 2. 20 마.. 2021. 9. 2.
BOJ 3020 - 개똥벌레(C++) https://www.acmicpc.net/problem/3020 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net 풀이 algorithm 라이브러리에서 제공하는 이진탐색 함수인 lower_bound, upper_bound를 이용하여 풀 수 있음 * 이진탐색을 위해서는 오름차순 정렬이 되어 있어야함 lower_bound(begin, end, target) : target 값 이상의 숫자가 배열 몇 번째에 있는지 탐색 upper_bound(begin, end, target) : target 값을 초과하는 숫자가 배열.. 2021. 9. 1.