프로그래머스 메뉴리뉴얼 손님들이 주문한 메뉴들 중 2개 이상의 조합을 찾아내어 손님들이 공통적으로 가장 많이 주문한 메뉴의 구성을 찾아내는 문제인데, 주어지는 course의 각 숫자만큼의 메뉴 갯수를 찾아내는 것 예를들어 3명의 손님이 각각 A, B, C B, C ,D A, B, F 를 주문했고 파라미터로 [2,3,4]가 들어왔을 때의 경우 메뉴 2개의 조합에서 가장 많이 주문 된 것은 A,B가 2번, 3개 조합에서는 없고, 4개도 마찬가지로 없어서 리턴되야할 것은 ["AB"] 들어오는 파라미터의 각 숫자만큼 조합을 구해야했다. 손님이 주문한 메뉴를 각 파라미터의 갯수만큼 숫자를 올리면서 조합을 구하고 난 다음, 메뉴 갯수에서 가장 많이 주문한 갯수를 찾기 위해 메뉴당 max값을 구했다. 최종적으로 ma..
프로그래머스 짝지어제거하기 같은 알파벳이 연속하게 존재하면 반복되는 알파벳을 지우고 이를 계속 반복한다. baabaa가 인풋으로 들어올 때 b "aa" baa가 반복되므로 해당 알파벳을 지운다 bbaa가 되므로 "bb"가 반복된다. 이를 지우고 마지막으로 aa도 지운다. 최종적으로 남는 알파벳이 없으면 1을 리턴, 남으면 0을 리턴한다. 괄호 찾기 문제랑 유사하기에 스택을 생각해서 풀었다. 스택의 최상단 값이랑 다음에 들어올 값이랑 같을 때 스택에서 pop하고, 다르면 Push하여 스택의 길이가 1이상이면 0리턴, 0이면 1을 리턴하도록 했다. function solution(s) { var answer = 0; let len = s.length; let stk = []; for (let i = 0; i..
프로그래머스 뉴스클러스터링 구현문제 주어진 문제에 맞춰 구현하면 된다. 요구조건에 맞춰 단계별로 수행했다. 입력에 있어서 대,소문자 차이는 무시하기에 모든 입력을 소문자로 처리했다. 입력문자열을 두 글자씩 끊어서 원소로 만들되 특수문자가 포함되어있으면 해당 원소는 버린다. 2번과정은 문자열 길이만큼 반복문을 돌리고, i, i - 1 문자를 map에 삽입하고, 반복되는 횟수를 count해주었다. 카운트해준 이유는 교집합, 합집합을 만들 때 사용되기 때문인데, 중복원소가 포함된 원소 {1,1,1}, {1,2,3}의 교집합은 {1,2,3}이고 합집합은 {1,1,1,1,2,3}이다. 교집합을 구하는 건 중복원소인 1에 대해 카운트된 숫자중 최소값을 넣으면되고 합집합의 경우 두 집합중 1이 반복되는 횟수의 max..
- Total
- Today
- Yesterday