Programmers 46

[Javascript] 프로그래머스 : 음양 더하기

[Javascript] 프로그래머스 Level 1 _ 음양 더하기 👇🏻 Link_Click 👇🏻 시행착오 ( + 코드를 작성하면서든 생각들.) 1. 음양 더하기라길래 뭔가 했더니 음수와 양수 더하기 였다 ㅎㅎㅎㅎㅎㅎㅎ 간단하게 reduce 함수로 누적합을 계산했다! function solution(absolutes, signs) { for(let i in absolutes) { if(!signs[i]){ absolutes[i] -= absolutes[i]*2 } } return absolutes.reduce((acc, val) => acc + val); } function solution(absolutes, signs) { for(let i in signs) { if(!signs[i]) absolutes..

Programmers/Level 1 2021.08.16

[Javascript] 프로그래머스 : 문자열 내 마음대로 정렬하기

[Javascript] 프로그래머스 Level 1 _ 문자열 내 마음대로 정렬하기 👇🏻 Link_Click 👇🏻 시행착오 ( + 코드를 작성하면서든 생각들.) 1. 문자열 배열의 문자열과 n번째에 해당하는 문자 두가지를 저장하는 객체들로 이루어진 배열을 생성한 뒤 문자 기준으로 정렬한 후 문자열만 다시 배열에 저장해서 리턴했다! function solution(strings, n) { function Extract(string, n) { this.string = string; this.word = string[n]; } let arr = []; for(let i in strings) { arr.push(new Extract(strings[i], n)); } arr.sort(function(a, b) { ..

Programmers/Level 1 2021.08.16

[Javascript] 프로그래머스 : 숫자 문자열과 영단어

[Javascript] 프로그래머스 Level 1 _ 숫자 문자열과 영단어 👇🏻 Link_Click 👇🏻 시행착오 ( + 코드를 작성하면서든 생각들.) 주어진 문자열을 숫자와 단어로 나누는 것이 문제였다 ㅠㅠ 그러다보니 정규표현식을 찾게되었고 겨우 작성할 수 있었다 ,, 배열로 나누고 난 이후로는 수월했다!numbers를 오브젝트로 선언할지 배열로 선언할지 고민했는데단어의 인덱스가 단어를 숫자로 바꿨을 때와 같아서 그냥 배열로 선언했다. 그리고 numbers에 포함되는 단어의 경우 해당하는 numbers의 인덱스로 바꿔주었다 function solution(s) { const regexp = /zero|one|two|three|four|five|six|seven|eight|nine+|[0-9]/g; co..

Programmers/Level 1 2021.08.15

[Javascript] 프로그래머스 : 2016년

[Javascript] 프로그래머스 Level 1 _ 2016년 👇🏻 Link_Click 👇🏻 시행착오 ( + 코드를 작성하면서든 생각들.) 1. 처음엔 단순하게 Date() 함수를 이용해 월과 일을 입력해 요일 배열에서 결과 값을 반환하도록 했다. 하지만 이렇게 하면 정확성 테스트에서 통과가 되지 않는다! function solution(a, b) { const days = ["SUN", "MON", "TUE", "WEND", "TURS", "FRI", "SAT"] const date = new Date(2016, a-1, b); return days[date.getDay()]; } 2. 문제를 살펴보면 2016년 1월 1일은 금요일이라는 문장이 있다. 그렇다면 해당 일이 2016년의 몇 번째 날인지를..

Programmers/Level 1 2021.08.14

[Sort] 정렬 알고리즘 : #1 정렬

정렬 ? 정렬이란 순서 없이 나열된 자료들을 조건/기준을 가지고 일정한 순서가 되도록 재배열하는 것을 의미한다. 우리가 자료를 찾을 때 정렬이 되지 않은 상태에서는 탐색 자체가 어려울 뿐만 아니라 효율이 매우 떨어지게 된다. 그렇기 때문에 자료가 커질수록 반드시 효율적인 알고리즘의 사용이 필요하다! 정렬 알고리즘의 종류에 대해 알아보기 전에 용어와 고려사항에 대해 먼저 알아보자. 레코드(Record) ? 키 (Key) ? 레코드(record) 란, 리스트의 각 원소를 의미하며 필드로 구성된 정렬의 대상이다. 키(Key) 란, 레코드의 한 서브 필드로 정렬의 기준이 된다. +) 예를 들어, 교실의 학생들을 일정한 순서로 정렬시키려고 하는 경우 이름이라는 필드를 키 값으로 정렬할 수 도 있고, 생년월일이라는..

[Data Structure] 자료구조 : #2 비선형구조

[Data Structure] 자료구조의 분류 : #1 선형구조 자료구조를 잘 이용하면 저장 공간을 효율적으로 이용하고, 신속하게 실행하는 효율적인 프로그램을 작성할 수 있다. 자료구조는 크게 아래와 같이 분류한다! 단순 구조 선형 구조 비선형 구조 emayom.tistory.com 이전 포스팅에서는 선형구조를 알아봤다. 오늘은 비선형 구조인 트리 / 그래프에서 유의해야 할 특징에 대해 하나씩 정리해보려고 한다. (트리도 그래프의 일종!) 비선형구조 선형구조는 데이터가 연속적으로 연결되어있는 1:1의 구조로 하나의 데이터 뒤에는 하나의 데이터가 존재하지만, 비선형구조는 데이터가 비연속적으로 연결되어있는 1:n의 구조로 하나의 데이터 뒤에 여러개의 데이터가 존재할 수 있다. 트리 (Tree) 트리 또한 방..

[Javascript] 프로그래머스 : 나누어 떨어지는 숫자 배열

[Javascript] 프로그래머스 Level1 _ 나누어 떨어지는 숫자 배열 👇🏻 Link_Click 👇🏻 시행착오 ( + 코드를 작성하면서든 생각들.) 1. 반복문을 이용해 배열을 돌며 divisor로 나누어 떨어지는 수 들을 리턴했다. LENGTH를 선언한 것은 반복문에서 Array.length를 사용할 경우 반복문이 실행될 때마다 배열의 length를 구하는 작업을 하게 되어 결론적으로는 성능에 좋지 못하다는 글을 우연히 봤다. (아래에 링크를 걸어 두었다!) 아직 그런 걸 확인할 수 있을 만큼 깊이가 있지는 않지만ㅎㅎㅎㅎ 봤으니 나쁜 습관이 되기 전에 고쳐보려고 한다! function solution(arr, divisor) { const LENGTH = arr.length; let answer..

Programmers/Level 1 2021.07.15

[Data Structure] 자료구조 : #1 선형구조

자료구조를 잘 이용하면 저장 공간을 효율적으로 이용하고, 신속하게 실행하는 효율적인 프로그램을 작성할 수 있다. 자료구조는 크게 아래와 같이 분류한다! 단순 구조 선형 구조 비선형 구조 파일 구조 그 중 '선형 구조'와 '비선형 구조'는 데이터를 연속적으로 연결하느냐, 비연속적으로 연결하느냐로 분류한다. 선형 구조와 비선형 구조에서 유의해야 할 특징에 대해 하나씩 정리해보려고 한다. 선형구조 배열 / 연속 리스트 (Contiguous List) : 인덱스를 통한 데이터 접근, 데이터 삽입 / 삭제가 번거로움 (하지만, 밀도 1) 연결 리스트 (Linked List) : 중간 노드가 끊어지면,,,, 🤦🏻‍♂️🤦🏻‍♀️ ( +) 기억공간의 효율 ↓ / 접근 시간 ↑) 연속 리스트는 배열을 이용하기 때문에 연..