문제 페이스북, 트위터, 카카오톡과 같은 사회망 서비스(SNS)가 널리 사용됨에 따라, 사회망을 통하여 사람들이 어떻게 새로운 아이디어를 받아들이게 되는가를 이해하는 문제가 중요해졌다. 사회망에서 사람들의 친구 관계는 그래프로 표현할 수 있는데, 이 그래프에서 사람은 정점으로 표현되고, 두 정점을 잇는 에지는 두 정점으로 표현되는 두 사람이 서로 친구 관계임을 표현한다. 예를 들어, 철수와 영희, 철수와 만수, 영희와 순희가 서로 친구 관계라면 이를 표현하는 친구 관계 그래프는 다음과 같다. 친구 관계 그래프를 이용하면 사회망 서비스에서 어떤 새로운 아이디어가 전파되는 과정을 이해하는데 도움을 줄 수 있다. 어떤 새로운 아이디어를 먼저 받아들인 사람을 얼리 아답터(early adaptor)라고 하는데, ..
숫자가 클 수록 우선순위가 높다는 문제에서 우선순위 큐를 내림차순으로 설정해서 사용하였다. 여기서 다음과 같은 이슈가 발생하였다. 우선순위 큐에 {3,7,6,2,4}를 넣었을 때 당연히 {7,6,4,3,2} 가 나올 줄 알았지만 {7,4,6,2,3}가 나왔다. 찾아보니 자바에서 우선순위 큐는 힙으로 구현되어있다는 것을 알았다. 이전에 정리했었는데..ㅎ 그래서 이번에는 제대로 이해하려고 한다. [자료구조] 힙(Heep) & 우선순위 큐 힙(Heep) 최댓값, 최솟값을 빠르게 찾기 위해 고안된 자료형으로 우선순위 큐를 위해 만들어졌다. 완전 이진 트리의 일종으로, 각 노드의 키값이 그 자식의 키 값보다 작지않거나(최대 힙), 크지 hee96-story.tistory.com 자바에서 우선순위 큐는 아래와 같이..
문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입니..
문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 입출력 예제 phone_book return [119, 976..
문자열의 모든 문자를 반복하는 방법은 두가지가 있다. charAt()을 사용하여 문자열에서 인자로 주어진 값에 해당하는 문자(char)를 리턴받는 방법String str = "string입니다."; for (int i = 0, n = str.length(); i < n; i++) { char c = str.charAt(i); } toCharArray()를 사용하여 문자열의 문자를 char[] 배열로 만드는 방법char[] chars = str.toCharArray(); for (int i = 0, n = chars.length; i < n; i++) { char c = chars[i]; } 두가지 방법 중 뭐가 더 좋다고 할 수 없지만, toCharArray()를 사용하는 경우 char[] 를 선언하기 ..
Stack 선형 자료구조의 일종으로 후입 선출(Last In First Out :LIFO) 방식이다. 즉, 나중에 들어간 원소가 먼저 나오는 특징을 가지고 있다. 데이터를 쌓아 올리는 구조로 먼저 Stack에 들어간 데이터는 맨 바닥에 깔린다. 따라서 늦게 들어간 원소는 맨 위에 놓이게 되고 호출시 가장 먼저 나가게된다. 입력(push), 출력(pop-java에서는 poll), 가장 위에 있는 데이터 확인(peek), 해당 값이 스택에서 몇번째 있는지(search) 등이 있다. 스택은 Random Access(비순차적 접근)이 불가능하다. 삽입/삭제는 O(1)의 시간 복잡도를 갖는다. 스택은 재귀 알고리즘을 사용할 때 유용하다. 재귀적으로 함수를 호출해야하는 경우, 임시 데이터를 스택에 넣고 재귀 함수를..
- Total
- Today
- Yesterday
- 우선순위큐
- git
- SWExpert
- Objective function
- 농협정보시스템IT
- Process Scheduling
- algorithm
- 프로세스 스케줄링
- Android
- MLQ
- 백트래킹
- java
- 자료구조
- MFQ
- 프로그래머스
- hash
- hashtable
- DFS
- 기능개발
- SRTN
- 네트워크
- binarySearch
- 알고리즘
- N-Queen
- 백 트래킹
- 사회망서비스
- 4-way-handshake
- loss function
- programmers
- 3-way-handshake
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |