[파이썬/알고리즘] Leetcode - 937. Reorder Data in Log Files
알고리즘/LeetCode 2021. 7. 3. 14:45

[문제] You are given an array of logs. Each log is a space-delimited string of words, where the first word is the identifier. There are two types of logs: Letter-logs: All words (except the identifier) consist of lowercase English letters. Digit-logs: All words (except the identifier) consist of digits. Reorder these logs so that: The letter-logs come before all digit-logs. The letter-logs are sor..

[파이썬/알고리즘] Leetcode - 1689. Partitioning Into Minimum Number Of Deci-Binary Numb
알고리즘/LeetCode 2021. 6. 28. 15:00

[문제] A decimal number is called deci-binary if each of its digits is either 0 or 1 without any leading zeros. For example, 101 and 1100 are deci-binary, while 112 and 3001 are not. Given a string n that represents a positive decimal integer, return the minimum number of positive deci-binary numbers needed so that they sum up to n. [예시] Example 1: Input: n = "32" Output: 3 Explanation: 10 + 11 + ..

[파이썬/알고리즘] 프로그래머스 - JadenCase 문자열 만들기 (정규식)
알고리즘/프로그래머스 2021. 6. 26. 15:53

문제 설명 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 1 이상인 문자열입니다. s는 알파벳과 공백문자(" ")로 이루어져 있습니다. 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫 번째 입출력 예 참고 ) 입출력 예 s return "3people unFollowed me" "3people Unfollowed Me" "for the last week" "For The Last Week" "aaaaa aaa" "Aaaaa Aaa" "hello m y friend" "Hello M Y Friend" ..

[자바스크립트, 파이썬/알고리즘] 프로그래머스 - 크레인 인형뽑기 게임 (카카오 인턴십 문제)
알고리즘/프로그래머스 2021. 5. 28. 14:03

[문제 설명] 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 ..

[자바스크립트/알고리즘] 프로그래머스 - JadenCase 문자열 만들기 (정규식)
알고리즘/프로그래머스 2021. 5. 18. 00:56

문제 설명 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. 15. 22:45

문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()"는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 입출력 예 s answer "()()" true "(())()" true ")()(" false "(()(" false 입출력 예 설명..

[자바스크립트/알고리즘] 프로그래머스 - 최댓값과 최솟값
알고리즘/프로그래머스 2021. 5. 15. 21:58

문제 설명 문자열 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. 11. 20:06

[문제 설명] 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. [제한사항] clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. c..

[자바스크립트/알고리즘] 스택 - 괄호 검사
알고리즘 2021. 5. 11. 15:01

괄호가 올바른 쌍이면 "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이 아닐경우에는 짝이 맞지않아서 스택에 '(' 또는 ')'가 한개 이상 있다는..

[자바스크립트/알고리즘] Leetcode - 부분 배열의 최대합
알고리즘/LeetCode 2021. 3. 13. 01:04

[문제] 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..