본문 바로가기

알고리즘

(5)
[프로그래머스] 베스트앨범 Lv.3해시 : 자바 풀이 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. - 속한 노래가 많이 재생된 장르를 먼저 수록합니다. - 장르 내에서 많이 재생된 노래를 먼저 수록합니다. - 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입니..
[프로그래머스] 의상(해시 Lv.2) : 자바풀이 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothes의 모든..
[프로그래머스] 전화번호 목록 (해시 Lv.2) : 자바풀이 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 입출력 예 phon..
[알고리즘_코드리뷰] 삼성역량테스트- 구슬탈출 0. 문제 스타트링크에서 판매하는 어린이용 장난감 중에서 가장 인기가 많은 제품은 구슬 탈출이다. 구슬 탈출은 직사각형 보드에 빨간 구슬과 파란 구슬을 하나씩 넣은 다음, 빨간 구슬을 구멍을 통해 빼내는 게임이다. 보드의 세로 크기는 N, 가로 크기는 M이고, 편의상 1×1크기의 칸으로 나누어져 있다. 가장 바깥 행과 열은 모두 막혀져 있고, 보드에는 구멍이 하나 있다. 빨간 구슬과 파란 구슬의 크기는 보드에서 1×1크기의 칸을 가득 채우는 사이즈이고, 각각 하나씩 들어가 있다. 게임의 목표는 빨간 구슬을 구멍을 통해서 빼내는 것이다. 이때, 파란 구슬이 구멍에 들어가면 안 된다. 이때, 구슬을 손으로 건드릴 수는 없고, 중력을 이용해서 이리 저리 굴려야 한다. 왼쪽으로 기울이기, 오른쪽으로 기울이기, ..
[알고리즘] 알고리즘 기초 0. 알고리즘 알고리즘이란 어떤 문제의 해결을 위한 입력, 연산, 출력의 집합 알고리즘의 필요성 - 좋은 프로그램을 만든다. 좋은 프로그램은 적은 공간, 빠른 속도를 보장한다. - 경우에 필요한 특정 자료 구조와 접근 방법이 필요 1. 시간 / 공간 복잡도 시간 복잡도란? - 입력값과 문제를 해결하는데 걸리는 시간 사이 상관관계를 의미한다. 입력값이 2배로 늘어났을 경우 문제를 해결하는데 몇 배의 시간이 늘어날지를 본다. 작은 시간 복잡도를 지닐 수록 좋은 알고리즘이다. - 한 줄의 코드가 하나의 시간을 쓴다고 어림합니다. (정확히 측정할 수 없습니다.) - 반복문이 많아질수록 시간복잡도는 지수적으로 증가합니다. 따라서 입력값이 길어질수록 시간복잡도의 차수가 가장 중요해지기 때문에 만약 시간복잡도를 2N..