분류 전체보기 97

[프로그래머스] 짝지어 제거하기 C++

https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 이번 문제는 stack 문제였습니다. 📝 문제풀이 1. 스택이 비어있다면 문자 push 2. 스택이 비어 있지 않다면 (짝지어가 있는지 검사) ☻ 스택의 탑과 현재 문자가 같다면 pop ☻ 스택의 탑과 현재 문자가 같지 않다면 현재 문자 push 3. 스택이 비어 있다면 짝지어를 성공적으로 제거한 것이므로 answer = 1 👩🏻‍💻 C++ 코드 #..

[프로그래머스] 문자열 압축

https://programmers.co.kr/learn/courses/30/lessons/60057?language=cpp 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 이번 문제는 완전 탐색 문제였습니다. 《문제 풀이》 1. 문자열 s를 압축할 수 있는 최대 길이는 s 길이의 절반임 ★ 2. string의 substr() 함수를 이용하여 문자열 비교 3. 비교하는 문자열과 현재 문자열이 ☛ 같다면 cnt++ ☛ 같지 않다면 temp 문자열에 cnt와 비교하는 문자열을 더해줌 (cnt는 cnt > ..

[프로그래머스] 기능개발

https://programmers.co.kr/learn/courses/30/lessons/42586?language=cpp 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 이번 문제는 스택/큐 문제였습니다. 《문제 풀이》 1. progresses 배열의 각 기능이 배포되기 위한 작업 기간을 구함 2. 구한 작업 기간들을 큐에 담음 3. 다음 작업 기간이 앞 차례의 작업 기간보다 ✏︎ 짧거나 같다면 theNumber++ ✏︎ 길다면 answer 배열에 theNumber를 담아줌 《C++ 코드》 #inc..

[프로그래머스] 가장 큰 수

https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 이번 문제는 정렬 문제였습니다. 《문제 풀이》 1. numbers 배열의 숫자를 문자열로 변환 2. 문자열로 변환한 두 숫자를 합치면서 오름차순 정렬 ← (b+a) - (a+b) 3. 결과값을 문자열로 변환 ★ numbers 배열이 0으로만 이루어진 경우 '000'과 같은 결과가 나올 수 있기 때문..

[프로그래머스] 타겟 넘버 JavaScript (Lv.2)

https://programmers.co.kr/learn/courses/30/lessons/43165?language=javascript 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 이번 문제는 DFS 문제였습니다. 📝 문제 풀이 1. numbers 배열의 모든 음이 아닌 정수는 더하거나 뺄 수 있음 ← 재귀 함수 2번 나눠서 호출 2. numbers 배열의 정수들의 순서를 바꾸면 안 됨 (인덱스는 1씩 증가) 3. 인덱스가 numbers 배열의 길이와 같다면 ••• (1) sum ..

[JS] Array API

slice 배열의 begin부터 end까지(end 미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환합니다. 원본 배열은 바뀌지 않습니다. const arr = [1, 2, 3, 4, 5]; console.log(arr.slice(1)); // [2, 3, 4, 5] console.log(arr.slice(1, 3)) // [2, 3] console.log(arr) // [1, 2, 3, 4, 5] splice 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경합니다. 원본 배열이 수정됩니다. const months = ['Jan', 'March', 'April', 'June']; months.splice(1, 0, 'Feb'); // 1 index에 0개 삭제 후, 'F..

JavaScript 2021.12.22

[TypeScript] Generics

재사용 가능한 컴포넌트를 작성하는 것은 소프트웨어 엔지니어링에서의 중요한 부분입니다. 이러한 재사용 가능한 컴포넌트를 생성하는 주요 도구 중 하나가 바로 제네릭입니다. 제네릭을 사용해서 함수를 생성하는 경우와 그렇지 않은 경우, 어떤 점이 다른지 알아 봅시다. 🤯 제네릭을 사용하지 않는 경우 1. string 타입의 인자만 받을 수 있는 함수 function getText(text: string): string { return text; } getText 함수는 string 타입의 text만 받을 수 있습니다. 그런데 만약 getText 함수에 string 타입을 제외한 타입의 text를 넘긴다면 어떻게 될까요? function getText(text: string): string { return tex..

TypeScript 2021.12.22

[TypeScript] type vs interface

타입을 정의하는 방법에는 두 가지 방법이 있습니다. type과 interface 인데요, 두 가지 방식의 차이점을 알아봅시다. 1. type vs interface 📚 타입을 확장하는 방법 type은 & 연산자, interface는 extends 키워드를 이용합니다. interface IStudent2 extends IStudent { age: number; } type TStudent2 = TStudent & { age: number; }; 📝 선언적 확장 interface에서 할 수 있는 대부분의 기능들은 type에서 가능하지만, 한 가지 중요한 차이점은 type은 새로운 속성을 추가하기 위해서 다시 같은 이름으로 선언할 수 없지만, interface는 항상 선언적 확장이 가능하다는 것입니다. int..

TypeScript 2021.12.22

정규 표현식 정리

🌱 정규 표현식 RegExr 🌱 정규 표현식이란 Regular Expression의 약자로, 개발자라면 기본적으로 알고 있어야 할 개념입니다. 정규 표현식은 텍스트에서 특정한 패턴을 찾을 때 (예를 들어, 전화번호 / 이메일 / 해시태그 등) 유용하게 쓰일 수 있습니다. 아래는 정규 표현식에서 자주 쓰이는 표현식들입니다. Gropus and ranges | 또는 () 그룹 [] 괄호 안의 문자 무엇이든 [^] 괄호 안의 문자 제외 (?:) 찾지만 기억하지 않음 Quantifiers ? 없거나 하나 이거나 * 없거나 하나 이상 + 하나 이상 {n} n번 반복 {min,} 최소 {min, max} 최소 그리고 최대 Boundary Type \b 단어 경계 \B 단어 경계 아님 ^ 단어의 시작 $ 단어의 끝 ..

JavaScript 2021.06.02

백준 17413번 단어 뒤집기 2

문제 보러가기 : https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 이번 문제는 문자열 문제였습니다. 태그 안팎의 단어를 꺼낼 때 각각 큐(queue)와 스택(stack) 자료구조를 사용하였습니다. 😀 《문제 풀이》 1. 공백을 포함하여 출력하기 위해 getline() 함수로 문자열 입력 2. 태그 안의 단어는 큐에 넣고, '>' 를 만나면 큐에 있는 모든 문자를 결과 문자열에 합함 3. 태그 밖의 단어는 스택에 ..

알고리즘/BOJ 2021.04.18
반응형