본문 바로가기

알고리즘70

[자바스크립트/알고리즘] 프로그래머스 - JadenCase 문자열 만들기 (정규식) 문제 설명 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 1 이상인 문자열입니다. s는 알파벳과 공백문자(" ")로 이루어져 있습니다. 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫 번째 입출력 예 참고 ) 입출력 예 s return "3people unFollowed me" "3people Unfollowed Me" "for the last week" "For The Last Week" 코드 function solution(s) { var answer = ''; answer = s.replace(.. 2021. 5. 18.
[자바스크립트/알고리즘] 프로그래머스-올바른 괄호 문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()"는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 입출력 예 s answer "()()" true "(())()" true ")()(" false "(()(" false 입출력 예 설명.. 2021. 5. 15.
[자바스크립트/알고리즘] 프로그래머스 - 최댓값과 최솟값 문제 설명 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최솟값과 최댓값을 찾아 이를 "(최솟값) (최댓값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 제한 조건 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. 입출력 예 s return "1 2 3 4" "1 4" "-1 -2 -3 -4" "-4 -1" "-1 -1" "-1 -1" 코드 function solution(s) { let nums = []; s.split(' ').map((ch) => {nums.push(parseInt(ch))}) let max = num.. 2021. 5. 15.
[자바스크립트/알고리즘] 프로그래머스-위장 [문제 설명] 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. [제한사항] clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. c.. 2021. 5. 11.
[자바스크립트/알고리즘] 스택 - 괄호 검사 괄호가 올바른 쌍이면 "YES", 그렇지 않으면 "NO"를 출력합니다. 예를 들어 ((()))()는 쌍이 올바르지만, ((())은 올바르지 않습니다. const check = (str) => { let stack = [], cnt = 0; for(let x of str){ if(x === '('){ stack.push(x); cnt++; } else { stack.pop(); cnt--; } } if(cnt) return 'NO'; return 'YES'; } 스택을 이용한 간단한 알고리즘이다. '(' 차례에는 stack에 push를 해주고 cnt를 증가시킨다. ')'의 경우에는 pop을 해주고 cnt를 감소시킨다. cnt가 0이 아닐경우에는 짝이 맞지않아서 스택에 '(' 또는 ')'가 한개 이상 있다는.. 2021. 5. 11.
[자바스크립트/알고리즘] Leetcode - 부분 배열의 최대합 [문제] 53. Maximum Subarray Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. [예시] Input Output [-2,1,-3,4,-1,2,1,-5,4] 6 [1] 1 [5,4,-1,7,8] 23 [풀이] var maxSubArray = function(nums) { for(let i = 1; i < nums.length; i++){ nums[i] = Math.max(nums[i], nums[i]+nums[i-1]); } return Math.max(...nums) }; 반복문을 돌면서 nums.. 2021. 3. 13.