[프로그래머스/레벨3] 베스트앨범 (자바스크립트)

[프로그래머스/레벨3] 베스트앨범 (자바스크립트)   문제 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 더보기…

[프로그래머스/레벨2] 위장 (자바스크립트)

[프로그래머스/레벨2] 위장 (자바스크립트)   문제 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 더보기…

[프로그래머스/레벨2] 전화번호 목록 (자바스크립트)

[프로그래머스/레벨1] 전화번호 목록 현재 이 문제에는 풀이 가능 언어에 자바스크립트가 없습니다. (C++, JAVA, Python)   문제 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 더보기…

[프로그래머스/레벨1] 완주하지 못한 선수 (자바스크립트)

[프로그래머스/레벨1] 완주하지 못한 선수 (자바스크립트) 문제 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 더보기…

자바스크립트 예제: 2차원 정방형 배열(square array) 여러 번 회전

알고리즘에 대한 설명은 여기에 나와 있습니다. 여기에서는 공식만 설명합니다. 정방형 배열은 행과 열의 수가 같은 2차원 배열을 뜻합니다. 이러한 정방형 배열은 회전할 수 있는 경우는 4가지 밖에 없습니다. 오른쪽으로 90도 회전 (왼쪽으로 270도 회전) 오른쪽, 왼쪽으로 180도 회전 오른쪽으로 270도 회전 (왼쪽으로 90도 회전) 오른쪽, 왼쪽으로 360도 회전 -> 이것은 더보기…

자바스크립트 코딩테스트 예제: 유지비 청구 날짜 구하기

문제 유지비는 매달 k일에 청구됩니다. 그 날이 주말(토요일 & 일요일)이라면, 유지비는 제일 가까운 주말에 청구됩니다. 1월(매 연도의 첫 달)의 첫째 주 첫 날의 요일이 day로 주어지며, k는 매달 유지비를 지불해야 하는 날짜일 때 이러한 파라미터를 받아 1월부터 12월까지 k가 주말이면 0, 아니라면 1을 반환하는 배열을 반환하는 solution 함수를 작성하세요.   제약 더보기…

자바(Java) 예제: 인접한 사방향(상하좌우, 동서남북) 탐색 (방향 벡터 1)

자바에서, 예를 들어 지도인 map이 있고, 여기에서 "옷"이 사람인 경우 그 사람 주변(상하좌우, 동서남북)에 무엇이 있는지 탐색하는 예제입니다. dx, dy 배열을 설정하고 (예제에서는 dir라는 이름의 2차원 int 배열로 했습니다.) 맵을 2중 for문을 돌면서 사람("옷")을 만나면 그 안에서 또 4번 반복하는 for문을 실행해 주변에 무엇이 있는지 확인합니다. dx(dir[0]), dy(dir[1])의 값에 따라 탐색 더보기…

프로그래밍 이름 궁합 찾기 알고리즘

이름 궁합 찾기: 각 획수를 주고 획수를 짝수개씩 묶어 더해나가고 최종적으로 두 개의 수만 남을 때까지 계산하는 방법 문제 링크 코드 (자바스크립트) function matchName(name1, name2) { name1 = name1.split(”).map(c => c.toUpperCase()) name2 = name2.split(”).map(c => c.toUpperCase()) const nameLength = name1.length + name2.length const minLen = Math.min(name1.length, name2.length) const weight = 더보기…

트리 순회: 전위, 중위, 후위 (preorder, inorder, postorder)

트리 자료구조의 순회 방법으로 전위 순회(preorder), 중위 순회(inorder), 후위 순회(postorder)가 있습니다. 출처 링크 예를 들어 위와 같은 이진 트리가 입력되면, 전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 자식) ☞ 전루왼오 (∠) 중위 순회한 결과 : DBAECFG // (왼쪽 자식) (루트) (오른쪽 자식) ☞ 중왼루오 (∧) 후위 순회한 더보기…