본문 바로가기
728x90

분류 전체보기230

자료형 크기 및 범위 정리 📌32bit (4Byte) 운영체제 기준 2021. 2. 26.
[Codility] Lesson5.CountDiv (C++) 🔮문제 Write a function: int solution(int A, int B, int K); that, given three integers A, B and K, returns the number of integers within the range [A..B] that are divisible by K, i.e.: { i : A ≤ i ≤ B, i mod K = 0 } For example, for A = 6, B = 11 and K = 2, your function should return 3, because there are three numbers divisible by 2 within the range [6..11], namely 6, 8 and 10. Write an efficient .. 2021. 2. 23.
[Codility] Lesson4. FrogRiverone (C++) 🔮문제 A small frog wants to get to the other side of a river. The frog is initially located on one bank of the river (position 0) and wants to get to the opposite bank (position X+1). Leaves fall from a tree onto the surface of the river. You are given an array A consisting of N integers representing the falling leaves. A[K] represents the position where one leaf falls at time K, measured in secon.. 2021. 2. 23.
[Codility] Lesson3. TapeEquilibrium (C++) 🔮문제 A non-empty array A consisting of N integers is given. Array A represents numbers on a tape. Any integer P, such that 0 < P < N, splits this tape into two non-empty parts: A[0], A[1], ..., A[P − 1] and A[P], A[P + 1], ..., A[N − 1]. The difference between the two parts is the value of: |(A[0] + A[1] + ... + A[P − 1]) − (A[P] + A[P + 1] + ... + A[N − 1])| In other words, it is the absolute di.. 2021. 2. 23.
[Codility] Lesson3. PermMissingElem (C++) 🔮문제 An array A consisting of N different integers is given. The array contains integers in the range [1..(N + 1)], which means that exactly one element is missing. Your goal is to find that missing element. Write a function: int solution(vector &A); that, given an array A, returns the value of the missing element. For example, given array A such that: A[0] = 2 A[1] = 3 A[2] = 1 A[3] = 5 the func.. 2021. 2. 23.
[Codility] Lesson3. FrogJmp (C++) 🔮문제 A small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to a position greater than or equal to Y. The small frog always jumps a fixed distance, D. Count the minimal number of jumps that the small frog must perform to reach its target. Write a function: class Solution { public int solution(int X, int Y, int D); } that, given three .. 2021. 2. 23.
[Codility] Lesson1. BinaryGap (C++) 🔮문제 A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N. For example, number 9 has binary representation 1001 and contains a binary gap of length 2. The number 529 has binary representation 1000010001 and contains two binary gaps: one of length 4 and one of length 3. The number 20 has bina.. 2021. 2. 23.
[금융IT용어] 전자서명 평가 인정제도 / 마이페이먼트 / 정보통신망법 /전송계층 / 지수차익거래 1. 전자서명 평가 인정제도 전자서명의 신뢰성을 제고하고, 이용자의 합리적 선택에 필요한 정보제공을 위해 도입한 제도이다. 현행법의 공인인증서는 일반 인증서와 구별되는 별도 법적효력이 있지만, 개정안의 평가를 통과한 인증수단에는 별도 법적효력이 부여되지 않는다. 다만 운영기준을 준수했다는 표시를 통해 이용자들이 이를 선택할 수 있게 했다. 2. 지급지시서비스업 (마이페이먼트(My Payment), PISP(Payment Initiation Service Provider) ) 접기 결제자금을 보유하지 않고도 금융기관을 통해 결제 서비스를 제공하는 서비스로 한 번의 로그인만으로 모든 금융기관의 계좌에 있는 자금을 자유롭게 결제 및 송금 처리하는 서비스. 예를 들면 농협 앱 內 신한 계좌, 우리 계좌를 통해 .. 2021. 2. 23.
[Codility] Lesson2. CyclicRotation (C++) 🔮문제 An array A consisting of N integers is given. Rotation of the array means that each element is shifted right by one index, and the last element of the array is moved to the first place. For example, the rotation of array A = [3, 8, 9, 7, 6] is [6, 3, 8, 9, 7] (elements are shifted right by one index and 6 is moved to the first place). The goal is to rotate array A K times; that is, each elem.. 2021. 2. 22.
[Codility] Lesson2. OddOccurrencesInArray (C++) 🔮문제 A non-empty array A consisting of N integers is given. The array contains an odd number of elements, and each element of the array can be paired with another element that has the same value, except for one element that is left unpaired. For example, in array A such that: A[0] = 9 A[1] = 3 A[2] = 9 A[3] = 3 A[4] = 9 A[5] = 7 A[6] = 9 the elements at indexes 0 and 2 have value 9, the elements .. 2021. 2. 22.
[프로그래머스] 단어 변환 (C++) 🔮문제 begin -> target 단어로 가는 가장 짧은 단계 return 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 🔮풀이 1. target이 words에 존재하는 경우 2. target이 words에 존재하지 않는 경우 2-1. begin과 target의 차이=1 이면 탐색 종료 2-2. begin과 target의 차이=1이 아니면 차이가 1인 다음 단어 탐색, 단계(cnt) + 1 🔮코드 #include #include #include #include using namespace std; int solution(string begin, string target, vector words) { int answer = 999; int cnt.. 2021. 2. 18.
[프로그래머스] 가장 먼 노드 (C++) 🔮문제 1번 노드로부터 가장 먼 노드 개수 return n : 노드 수 edge : 간선정보 🔮풀이 bfs를 사용하여 1번 노드 ~ n번 노드와의 거리 dist 배열에 저장 🔮STL - sort default = 오름차순 정렬 sort(arr, arr+n); sort(v.begin(), v.end()); sort(v.begin(), v.end(), compare); //사용자 정의함수 sort(v.begin(), v.end(), greater()); //내림차순 sort(v.begin(), v.end(), less()); //오름차순 🔮코드 #include #include #include #include #include using namespace std; vector arr(20001); int vis.. 2021. 2. 18.
[Algorithm] Priority Queue (우선순위 큐) 기본적으로 큰 값이 가장 맨 위에 오도록 queue를 쌓는다. priority_queue의 구조는 priority_queue 이다. 따라서 아래와 같이 코드를 짜면 된다. (C++기준) #include priority_queue pq; priority_queue pq; less : 가장 큰 값이 맨 위에 온다. greater : 가장 작은 값이 맨 위에 온다. 만약 직접 구현한 구조체에 해당하는 비교함수를 쓰고싶다면 아래와 같이 사용하면 된다. #include struct node{ int x, y, cost; node(int x, int y, int cost):x(x), y(y), cost(cost){} }; struct cmp{ bool operator()(node a, node b){ return .. 2021. 2. 17.
[Algorithm] Kruskal Algorithm (크루스칼 알고리즘) 💡크루스칼 알고리즘이란? Greedy 알고리즘으로 MST(Minimum Spannig Tree, 최소 신장 트리) 문제 해결할 때 사용하는 알고리즘. 변의 개수를 E, 꼭짓점의 개수를V라고 하면 이 알고리즘은(Elog V)의 시간복잡도를 가진다. 즉, 모든 노드를 최소한의 비용으로 연결만 시키면 되기 때문에 간선의 비용을 오름차순으로 정렬 후 비용이 작은 간선부터 차례로 노드를 연결한다. 📌최소 신장 트리 구성 과정 1. 간선의 비용을 기준으로 정렬 2. 정렬된 순서에 맞게 최소 비용 순으로 그래프 연결 3. 연결 전 사이클이 발생하는지 확인 4. 사이클이 발생하는 경우 그래프에 포함하지 않음. 5. 위 과정을 반복 스패닝 트리 : 1) 모든 노드(정점)을 포함하고, 2) 노드간 연결되어 있으며 사이클을.. 2021. 2. 17.
[Algorithm] Segment Tree (세그먼트 트리) 💡Segmet Tree (세그먼트 트리) 란? 세그먼트 트리는 Binary Tree로 리프노드가 배열의 원소이고, 부모 노드는 각 배열 원소의 값의 합입니다. 따라서 배열의 원소값이 계속 변하고, 배열의 부분 합을 구할 때 부분 합을 트리에 계속 저장하여 O(logN)의 속도로 빠르게 부분 합을 구할 수 있습니다. 세그먼트 트리의 구현을 배열을 통해 구현 할 수 있다. 인덱스 i를 기준으로 했을 경우, 각 노드의 위치는 아래와 같습니다. - 부모노드 : i - 왼쪽 자식 노드 : 2*i - 오른쪽 자식 노드 : 2*i + 1 📌세그먼트 트리 구현 함수 void init(int tree[], int arr[], int left, int right, int idx) { if(left == right) { t.. 2021. 2. 11.
[Algorithm] Floyd-Warshall Algorithm 알고리즘 문제를 풀다가 최소 비용 문제와 관련하여 플로이드 워셜 알고리즘을 알게되어 정리해 본다. 💡알고리즘 설명 플로이드-워셜 알고리즘(Floyd-Warshall Algorithm)은 그래프에서 가능한 모든 노드 쌍에 대해 최단 거리를 구하는 알고리즘이다. 그래프 - 나무위키 이 문서는 대한민국에서 불법인 내용을 다룹니다. 본 문서는 대한민국에서 범죄를 구성하는 행위에 관한 헌법·법률·대통령령·조례를 다루고 있습니다. 일부 예외를 제외하고, 대한민국이 아 namu.wiki 플로이드-워셜 알고리즘은 임의의 노드 s에서 e까지 가는 데 걸리는 최단거리를 구하기 위해, s와 e 사이의 노드인 m에 대해 s에서 m까지 가는 데 걸리는 최단거리와 m에서 e까지 가는 데 걸리는 최단거리를 이용한다. 조금 더 구체.. 2021. 2. 7.
Netflix Recommendation system 넷플릭스 추천 시스템 (Netflix Recommendation System) 넷플릭스 추천 시스템에 대해 조사하며 추천시스템 관련 개념을 정리한 내용 입니다. 1) Content-based Filtering (콘텐츠 기반 필터링) - 영화의 줄거리, 장르 등을 데이터로하여 콘텐츠 기반으로 분석 후 추천하는 방법 - 장점 : 초기 사용자의 행동 데이터가 적더라도 추천 가능 - 단점 : 사용자의 성향을 세부적으로 파악하기 어려움 예) EXO의 수호만 등장하는 컨텐츠를 원하지만 EXO의 다른 멤버가 출현하는 컨테츠 추천 할 가능성 2) Collaborative Filtering (협업 필터링) - 같은 행동을 한 사람들을 하나의 그룹으로 묶어서 그룹 내의 사람들이 공통으로 봤던 컨텐츠를 추천하는 방법 - 단.. 2020. 10. 14.
[Hive] Hive 개념 Hive(벌떼)는 HDFS(컴퓨터들로 구성된 클러스터에서 수행되는 분산파일 시스템)에 저장된 데이터를 관리할 수 있도록 쿼리를 제공하는 데이터 웨어하우스 프로젝트라고 할 수 있습니다. 페이스 북에서 개발한 하이브는 하둡에 저장된 데이터를 쉽게 처리할 수 있는 데이터웨어하우스(DW) 패키지 이다. 출처: https://excelsior-cjh.tistory.com/39 [EXCELSIOR] Apache Hadoop 데이터 웨어하우스 시스템입니다. Hive를 사용하면 데이터의 요약, 쿼리 및 분석을 수행할 수 있습니다. Hive 쿼리는 SQL과 유사한 쿼리 언어인 HiveQL로 작성합니다. 맵리듀스는 기본적으로 자바 기반의 프레임워크이므로 기존 데이터베이스나 DW를 통해 분석을 하던 개발자가 아닌 사용자들에.. 2020. 7. 4.
[Spark] OnlineRetail ItemCount - GCP 시스템 환경 - Hadoop 2.9.2 Hive 2.3.7 Spark version 2.3.4 Scala 2.11.8 - 상품명만 추출 val items = dataInfo.map(mi => mi(2)) items.take(3) #res10: Array[String] = Array(Description, WHITE HANGING HEART T-LIGHT HOLDER, WHITE METAL LANTERN) val items = dataInfo.flatMap(mi => mi(2)) items.take(3) #res11: Array[Char] = Array(D, e, s) - (PID , ITEM) 튜플 생성 # mi(1) : 배열의 1 index 원소 # mi(2) : 배열의 2 index 원소 .. 2020. 7. 4.
[Spark] Scala 기초 문법 first() : 첫 줄 가져오기 count() : rdd 안의 객체수 take(int) : 첫 줄부터 해당 수만큼 collect() : 모든 객체를 배열에 담아 반환 foreach(println) : 모든 줄을 한 줄씩 띄어서 출력 println이니까..!! 2020. 7. 4.
728x90