알고리즘
[Javascript] 정규표현식 - 정규표현식이란? RegExp 와 플래그
알고리즘에서 문자열관련 코딩 테스트를 풀다보니 정규표현식이라는 개념이 나왔습니다. 물론 정규표현식을 사용하지 않더라도 다양한 메서드를 통해 문제를 풀어나갈 수 있지마 언젠가는 이런 문법이 필요해지는 경우가 올 것이기 때문에 이전에 정리한 정규표현식을 업그레이드 한다는 마음으로 포스팅을 작성해보겠습니다. 1. 정규표현식 이란? 정규표현식이란 무엇인가 부터 알아볼 필요가 있을 것 같습니다. MDN에서는 다음과 같이 정의하고 있습니다. "정규 표현식은 문자열에 나타내는 특정 문자 조합과 대응시키기 위해 사용되는 패턴이다. 자바스크립트에서, 정규 표현식 또한 객체이다." 간단히 말해 문자열에서 특정한 문자를 찾아내기 위해 사용되는 하나의 패턴이라고 볼 수 있습니다. 자바스크립트에서는 이 뿐만 아니라 프로그래밍 ..
[알고리즘 개념 정리] 1. 변수와 상수
알고리즘의 첫 시간은 변수와 상수에 대해 알아보도록 하겟습니다. 변수와 상수는, 특정 이름에 특정 값을 담을때 사용합니다. 예를 들어 우리가 value라는 이름에 1 이라는 값을 넣는다 가정해 봅시다. 그러면, 코드를 이렇게 입력하면 됩니다. let value = 1; 그러면, 앞으로 우리가 value를 조화할때 value라는 값에 1을 가르키게 됩니다. 예를 들어 우리가 console.log를 통해 value 값을 출력할 수 잇습니다. let value = 1; console.log(value) 그러면 value라는 값은 1이라고 나올 것입니다. 특정 이름에 특정 값을 설정하는 것, 우리는 이것을 선언이라고 부릅니다. 쉽게 말해 이제부터 이 value라는 값은 1이다~ 라고 정해주는 것입니다. 값을 선..
[첫시작] Start! - 알고리즘 익히기
Winter ALGORIHTM 익히기 알고리즘은 수학과 컴퓨터과학 언어학 또는 엮인 분야에서 어떠한 문제를 풀어내기 위해 정해지 일련의 절차나 방법을 공식화한 형태로 표현한 것 입니다. 필자는 1년이라는 깊은 개발상식을 파해치고 주니어 개발자로 성장했으나 아직까지는 알고리즘을 꺠달은 단계는 아니라 생각해 알고리즘 익히기 계획을 준비했습니다. 알고리즘 공부를 위한 참고서 egoing - 생활코딩 백준 - 알고리즘 프로그래머스 - 알고리즘 풀이 알고리즘 공부를 위한 준비 알고리즘 함수 깨우치기 - sort, for 정렬법, 반복문 등등 알고리즘을 작성하는 과정 문제 분석 주어진 문제에 대한 논리적 분석을 통해 핵심 사항을 분석한다. 데이터 수집과 표현 문제 해결과 관련된 정보들을 수집하며 데이터를 적절한 형..
[알고리즘 테스트] 가운데 글자 가져오기
문제 설명 단어 s 가운데 글자를 반환하는 함수 solution을 만들어 보세요 단어의 길이가 짝수라면 가운데 두글자만 반환하면 됩니다. 제한 사항 arr의 길이 1 이상, 100 이하인 스트링입니다. 입출력 예 s return "abcde" "c" "qwer" "we" 풀이 문자열의 길이가 짝수인지 홀수인지 판단한다. 짝수이면 가운데 두 글자를 반환하고, 홀수이면 가운데 한 글자만 반환한다. function solution(s) { let answer = ''; if (s.length % 2 == 0) {//짝수일 경우 answer = s[s.length / 2 - 1] + s[s.length / 2] } else { answer = s[Math.floor(s.length/2)]; // 홀수의 경우, ..
[알고리즘 테스트] 체육복
문제설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행이 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 resorve가 매개변수로 주어질때, 체육수업을 들을 수 있는 학생의 최대값을 return 하도록 solution함수를 작성해주세요. 제한 사항 전체 학생 수는 2명 이상 30명 이하입니다. 체육복을 도난당한 학생의 수는 1명 이상 n명 이하이고 중복되는 번호는 없습니다. 여벌의 체육복을 가져온 학생의 수는 1명 이..
[프로그래머스 알고리즘] 같은 숫자는 싫어
문제설명 배열에 arr이 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이떄, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려 합니다. 단, 제거가 된후에는 남은 수들을 반환할때 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면 arr = [1,1,3,3,0,1,1,] 이면 [1,3,0,1]을 return 해야합니다. arr = [4,4,4,3,3] 이면 [4,3]을 return 해야합니다. 배열 arr에서 연속적으로 나타나는 숫자를 제거하고 남은 수들을 return 하는 solution 함수를 완성해주세요. 제한 사항 배열 arr의 크기: 1,000,000 이하의 자연수 배열 arr의 원소 크기: 0보다 크거나 같고 9보다 작거나 같은 정..
[알고리즘 테스트] 완주하지 못한 선수
문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 pariticpant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해 주세요 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 pariticipant completion return ["leo", "ki..