본문으로 건너뛰기

정렬 H-Index

· 약 2분

프로그래머스 코딩테스트 고득점 Kit H-Index

문제 설명

H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다.

어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다.

어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요.

정렬 가장 큰 수

· 약 4분

프로그래머스 코딩테스트 고득점 Kit 정렬 가장 큰 수

문제 설명

0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.

예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다.

0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요.

Sorting(정렬)

· 약 9분

정렬을 배우면 쉬워지는 문제들

  • 배열 A에서 특정 값 v를 검색
  • (정적) 배열 A 에서 최소/최대 또는 k번째 최소/최대 값 찾기
  • 배열 A에서 고유성 테스트 및 중복 삭제
  • 특정 값 v가 배열 A에 나타나는 횟수 세기
  • 배열 A와 다른 정렬된 배열 B 사이에 교집합/합집합을 설정
  • x+yx+y가 목표 zz와 같 도록 목표 쌍 xAx ∈ AyAy �∈ A 찾기

이분탐색 입국심사

· 약 3분

프로그래머스 코딩테스트 고득점 Kit 이분탐색 입국심사

문제 설명

n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다.

처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다.

Trie(트라이)

· 약 2분

트라이

  • 문자열을 저장하고 효율적으로 탐색하기 위한 트리 형태의 자료구조
  • 검색어 자동완성, 사전 찾기 등에 응용될 수 있다.
  • 문자열을 탐색할 때 단순하게 비교하는 것보다 효율적으로 찾을 수 있다.
  • LL이 문자열의 길이일 때 탐색, 삽입은 O(L)O(L)만큼 걸린다.
  • 각 정점이 자식에 대한 링크를 전부 가지고 있어 저장 공간을 더 많이 사용

Graph(그래프)

· 약 2분

1. 인접 배열

javascript
// 5 X 5 false 배열 생성
const graph = Array.from(Array(5), () => Array(5).fill(false));
console.log(graph);
// graph[출발지][목적지] 해당 부분을 true로 설정
graph[0][1] = true;
graph[0][3] = true;
graph[1][2] = true;
graph[2][0] = true;
graph[2][4] = true;
graph[3][2] = true;
graph[4][0] = true;
console.log(graph);

Hash(해시)

· 약 4분

Hashing(해싱)

  • 임의의 길이를 가진 값을 해시 함수를 사용해 고정된 크기의 값으로 변환하는 작업

해시 테이블

  • 키와 값을 받아 키를 해싱(Hashing)하여 나온 index에 값을 저장하는 선형 자료구조
  • 삽입은 O(1)O(1)이며 키를 알고 있다면 삭제, 탐색도 O(1)O(1)로 수행

Guestbook(방명록)

· 약 1분

방명록

방명록 또는 게스트북(guestbook)은 방문객이 어느 지역에 방문한 것을 인지시키고 자신의 이름, 주소, 의견 등을 남기기 위한 종이 또는 전자 수단이다. (중략) 웹상에서 방명록은 웹사이트의 방문객들이 공개 댓글을 남길 수 있게 하는 기록 시스템이다. 일부 방명록의 경우 방문객들은 웹사이트나 웹사이트 주제에 관하여 자신의 생각을 표현하는 것이 가능하다.