분류 전체보기
Kakao_보석쇼핑
Kakao_보석쇼핑
2021.06.10시작 효율성을 검증하는 문제다. 사실 문제 요구사항은 크게 어렵지 않다. 다만, 보석의 개수가 100,000 이라는 점에서 반복문을 2번만 돌려도 시간초과가 날 수 있으니 유의해야 한다. 배열의 범위가 커지면 O(N)이나 혹은 그 이하로 프로그램이 수행해야 하는 경우가 종종 있다. 이 문제를 접근해서 해결할 수 있는 방법은 투포인트 방법이 있다. 여기서는 원포인트, 투포인트 접근 모두 다뤄보고자 한다. 알고리즘 동작 원리(투포인트) 쉽게 말하면 보석을 조금씩 덜어내고 마침내 사라지면 마지막으로 보석을 본 시점부터 끝까지 돌며 해당 보석을 찾아가는 과정을 나열한 것이다. 조금 복잡해 보이지만, 별거 없다! 눈여겨 봐야할 것은 1. 중복제거해서 쥬얼리 종류 파악 2. HashMap에 각 쥬얼리가 얼만큼 등장..
프로그래머스 바닐라 JS 스터디 - 2주차
프로그래머스 바닐라 JS 스터디 - 2주차
2021.06.09시작 js코드를 작성하면서 기존에 알고있던대로 작성하다 굉장히 삽질을 많이했다. ❗️❗️ 그래서 구글링과 다른 사람들의 코드를 참조하며 과제를 수행했다. 📌 Component 단위로 작성하는 과정은 데이터의 갱신과 같은 Component간의 독립적이지만서도 연관되어 있는 부분이 존재한다면 이를 처리하기가 여간 번거로운것이 아니다. 여기서 오는 과정과 해결방법들에 대해 나는 어떻게 해결했는지, 다른 사람들의 코드는 어떤지 한번 살펴볼것이다. ✔️ 삽질1 삽질의 시작은 Component에서 데이터갱신에 대한 처리방법이다. todolist 데이터를 갱신처리하는 부분에서 newData를 handleSubmit안에 두고 값을 갱신했다. 이것은 나중에 한파일에 있었던 input Component를 분리하게 되면서 ..
Spring 프로젝트를 GCP VM에 배포 하는 과정
Spring 프로젝트를 GCP VM에 배포 하는 과정
2021.06.04시작 생각 외에 많은 이슈들이 발생해서 해결하는데 시간이 걸렸습니다. 기록해 두고, 다음에 배포할 땐 오류를 최소화 하기 위해 작성합니다. :( 개요 Spring boot project를 클라우드로 배포하는 과정을 수행합니다. CentOS GCP 이하 Google Cloud Platform 에서 운영체제 CentOS(ver7)을 선택하였습니다. 배포하기 위한 작업들 가상 머신 : centos 환경설정 → java 11버전, mvn 설치 Spring Project : spring project git에 commit & push, centos에 접속 후 git clone 후 mvn package Google Cloud Platform : firewall 8080 port open 발생했던 이슈들 1) cne..
코드 리뷰 하기
코드 리뷰 하기
2021.06.01시작 github내 repository를 이용하는것은 형상 관리하는데 가장 중요한 요소입니다. 이 과정에서는 협업을 수행하는데 팀원들과 함께 코드 리뷰는 어떻게 할지에 대해 아는 범위 내에서 pull request 그리고 merge 단계에 대해 알아보겠습니다. (2021년 6월 일 마지막 업데이트) Commit & Push 가장 기초가 되는 Commit 과 Push는 해당 링크를 참조하였습니다. https://tagilog.tistory.com/377 [GITHUB 사용법] 왕초보를 위한 깃허브사용법 (Git사용법) 코딩할 때 뺄래야 뺄 수 없는 서비스 중 하나가 GitHub (깃허브) 입니다. 현역 프로그래머에게는 너무나 친숙한 서비스지만, 코딩 초보자에게는 생소할 수도 있습니다. 그래서 이번에는 코딩..
BOJ_14864_줄서기
BOJ_14864_줄서기
2021.05.30시작 줄서기 문제는 Ad-hoc 으로 문제 분류가 되어있습니다. 이 알고리즘을 찾아보니, 창의력 문제 정도로 찾아볼 수 있었습니다. 규칙? 문제를 읽고 손으로 끄적이다가 대강 넣어보니 이렇게 들어가는 구나 이해를 했습니다. 아래는 그 손으로 끄적인것을 그림으로 도식화 한것입니다. 근데 막상 규칙을 찾아보려 하니 규칙이 눈에 띄진 않았지만 괄호안에서 왼쪽, 오른쪽 사이에는 대소 비교관계가 있고 왼쪽이 오른쪽보다 크기 때문에 묶어 생각해보면 학생1이 가진 숫자는 최소 2개의 숫자보다 크게 됩니다. 그렇기 때문에 +2 라는 표시를 했고 학생5의 경우에는 최소 3개의 숫자보다 작게 됩니다. 마찬가지로 -3라는 표시를 했습니다. 그렇게 보니, 초기 값 N=5라면 Array 각 인덱스에 1,2,3,4,5 가 순서대..
프로그래머스 바닐라 JS 스터디 - 1주차
프로그래머스 바닐라 JS 스터디 - 1주차
2021.05.30시작 프로그래머스에서 참여형 유료 스터디로 바닐라 자바스크립트를 수강하게 되어 공부하며 미흡했던 내용을 정리하고자 합니다. Map vs Reduce Map의 경우에 Array.map((요소, 인덱스, 배열) => { return 요소 }); 실행하는 배열과 결과로 나오는 배열이 서로 다른 객체가 됩니다. 즉, 배열을 1대1로 매핑하게 되기 때문에 기존 객체를 수정하지 않는 메소드라고 정리할 수 있습니다. Reduce의 경우에는 Array.reduce((누적값, 현재값, 인덱스) => {return 결과값}, 초기값) 의 구조로 사용할 수 있습니다. 일반적으로 Reduce는 누적값을 구하는데 사용할 수 있지만, 데이터를 조회하며 리듀스 함수(콜백함수)를 실행합니다. 이를 통해 배열 형태에서 원하는 형태로 ..
나만 알고 싶은 자료 🦆🎶
나만 알고 싶은 자료 🦆🎶
2021.05.28공부하다가 인생 URL을 발견할 때마다 업로드 해두고 있습니다. 이해력 1도 없는 나를 이해시켜준 멋진 사람들 ...⭐️🦆🎶 해당 내용을 다시 볼 기회가 생기거나, 무뎌질 때 쯤 다시 해당 포스팅을 참고하면 좋을 듯 해서 모아두었습니다. 알고리즘 펜윅 트리 공부 중 발견한 알고리즘 사이트1 : https://gseok.gitbooks.io/algorithm/content/d2b8-b9ac-c54c-ace0-b9ac-c998/d39c-c705-d2b8-b9ac.html 펜윅 트리 · Algorithm gseok.gitbooks.io 펜윅 트리 공부 중 발견한 알고리즘 사이트2 : https://www.crocus.co.kr/666 펜윅 트리(Fenwick Tree, Binary Indexed Tree, B..
AWS redshift 와 GCP bigQuery 차이
AWS redshift 와 GCP bigQuery 차이
2021.05.27시작 클라우드에서 데이터 처리 및 분석하는데 가장 핵심적인 부분은 Data Warehouse 입니다. 각 벤더사에서 AWS, GCP에서 제공하는 Data Warehouse는 redshift 와 bigQuery 가 있습니다. 이 포스팅에서는 두 DW의 차이에 대해 알아보겠습니다. 다른 포스팅에 비해 부족한 내용이겠지만 각각의 서비스에 대한 설명과 가격, 보안, 사용, 성능, 가용성 분류로 차이에 대해 나열해 보겠습니다. redshift AWS에서 제공하는 데이터웨어하우스의 역할로 수백 기가 바이트부터 페타바이트 이상까지 데이터를 확장해서 저장할 수 있습니다. 데이터 전송시 최대 100Gbps 대역을 가질 수 있습니다. redshift을 동작하기 전에 cluster를 구성해야 하는데 프로비저닝 작업을 수행해..
BOJ 5719 거의 최단 경로
BOJ 5719 거의 최단 경로
2021.05.27시작 https://lotuslee.tistory.com/137 본문을 참고하였습니다. 문제를 읽어보면 한가지 좋은 아이디어를 생각해볼 수 있었는데 구현이 쉽지 않았습니다. 아이디어는 비교적 간단합니다. 1. 다익스트라로 최단 경로를 구합니다. 2. 최단 경로들을 모두 제외 합니다. 3. 다익스트라로 다음 최단 경로를 구합니다. 그림으로 보면 다음과 같습니다. 각 순서는 그림에서 왼쪽부터 1, 2, 3으로 확인해 볼 수 있습니다. 소스코드를 우선 살펴보겠습니다. 코드 중에 preNodeCollections, ArrayList 를 선언해 두었습니다. 최소 비용을 가진 경로를 담아두기 위한 목적인데, 거리 값이 갱신 되면 왼쪽에 보이는 1번 경로가 clear 되고 2번 경로가 preNodeCollection..
다익스트라 X BOJ_4485_녹색옷입은애가 젤다지?
다익스트라 X BOJ_4485_녹색옷입은애가 젤다지?
2021.05.26시작 다익스트라 개념에 대해 정리한것을 포스팅 합니다. 다익스트라는 기본적으로 최단 경로로 많이들 알고 있지만, 최단 경로는 BFS 로도 접근할 수 있기 때문에 여기서 최소 비용 개념을 추가해주어야 합니다. 즉, 다이스트라는 최단 거리 + 최소 비용의 문제입니다. 조건 보통의 다익스트라의 문제 경우 아래 조건들을 만족합니다. 1. 방향 그래프 입니다. 2. 0 이상의 가중치 값을 가지고 있습니다 3. 사이클이 존재하지 않아야 합니다. 구현 (코드X) 다익스트라의 경우 BFS 개념에 그리디 알고리즘을 적용합니다. 덧붙이면, 최단 거리를 구하게 되지만 매 순간 가장 좋은 가중치 값을 선택하게 됩니다. 거리, 방문 여부 변수를 두어 다익스트라 알고리즘이 어떻게 동작하는지 살펴보겠습니다. 그림 처음 워크플로우는..
AWS redShift 실습하기
AWS redShift 실습하기
2021.05.25시작 아마존 웹 서비스에 로그인합니다. 로그인하고 왼쪽 패널을 확인합니다. 아래 링크를 그대로 수행한 것입니다. https://docs.aws.amazon.com/ko_kr/redshift/latest/gsg/rs-gsg-prereq.html 스크린샷으로 남겨 둬서 나중에 헤매지 않기 위해서 포스팅합니다. IAM 역할 생성 IAM 쪽으로 이동해서 역할을 클릭합니다. redShift 시작하기전에 IAM를 통해 Identity를 확인하기 위함인듯 합니다. 역할 만들기를 보면 AWS 서비스 부분이 있습니다. 이것을 클릭하고, 밑에 보면 확인할 수 있는 Redshift를 클릭합니다. 그리고 스크롤을 내려서 보면 사용 사례 선택 부분이 있습니다. 여기서 Redshift - Customizable을 클릭합니다. 역..
express, babel 설치
express, babel 설치
2021.05.25npm i express npm은 패키지 관리 도구입니다. 프로젝트에서 요구하는 서버를 구현하기 위해서는 express 를 설치해 줍니다. express 설치 후, node_modules에서 express > lib 에서 package.json을 확인할 수 있습니다. dependencies 등등 확인해볼 수 있습니다. express의 package.json 파일의 scripts 부분 입니다. 보고 있는 이유는 scripts에는 어떤것이 정의되었는지 확인해보고자 했습니다. 또, dependencies 입니다. 이 express를 실행하려면 반드시 설치해줘야 하는 의존성 패키지들 이라고 생각하시면 좋을 것 같습니다. npm i 시에 package.json의 express의 버전을 package-lock.js..