프로그래머스 17

[Javascript] 프로그래머스 : 모의고사

[Javascript] 프로그래머스 Level 1 _ 모의고사 👇🏻 Link_Click 👇🏻 시행착오 ( + 코드를 작성하면서 든 생각들.) ✏️ 제출 코드 - solution 1 완전 탐색 문제로 처음에는 문제의 길이가 패턴의 길이보다 길면 패턴의 길이를 repeat()으로 늘려줘야겠다고 생각했다. 그렇다 보니 늘리고 줄이는 과정을 추가하며 코드를 적다 보니 생각보다 길어졌다,,, - solution 2 근데 생각해보니 패턴은 계속 반복되기 때문에 수포자 1이 10문제를 찍어서 [1, ,2, 3, 4, 5, 1, 2, 3, 4, 5, ... ] 로 풀었다고 하면, 답으로 1번을 찍은 문제들은 모두 (인덱스 % 패턴의 길이)가 0이라는 패턴을 가지고 있길래 간단히 코드를 수정할 수 있었다! ⚠️ 아래 내..

Programmers/Level 1 2021.08.24

[Javascript] 프로그래머스 : 다음 큰 수

[Javascript] 프로그래머스 Level 2 _ 다음 큰 수 👇🏻 Link_Click 👇🏻 시행착오 ( + 코드를 작성하면서든 생각들.) ✏️ 제출 코드 - solution 1 처음엔 간편하게 toString()으로 진법을 변환했다. 그리고 정규표현식으로 1의 개수를 파악한 뒤 반복하며 n보다 1씩 늘려가면서 2진법으로 변환 시 1의 개수가 같아질 때에 리턴하도록 구성했다! - solution 2 do-while문이 아닌 그냥 while문으로 수정하며 무한 반복문 -> 조건문을 넣는 것으로 수정했다. - solution 3 toString()이 아니라 직접 2진법으로 수정해주는 것으로 수정했다. - solution 4 다른 분들의 풀이를 보다가 filter()를 사용했길래 정규표현식 대신 filte..

Programmers/Level 2 2021.08.23

[Javascript] 프로그래머스 : 행렬의 곱셈

[Javascript] 프로그래머스 Level 2 _ 행렬의 곱셈 👇🏻 Link_Click 👇🏻 시행착오 ( + 코드를 작성하면서 든 생각들.) ✏️ 제출 코드 문제를 풀기 위해서는 행렬의 곱셈에 대해 알고 있어야 한다! 행렬의 곱셈은 곱하는 행렬 A의 열의 개수와 행렬 B의 행의 개수가 같은 경우에만 가능하다. 즉, (m*k) 행렬과 (k*n) 행렬을 곱했을 때 (m*n)의 행렬이 만들어지게 된다. 처음에는 m*n의 행렬을 미리 만들고 값을 대입하려고 했는데, 두 번의 반복되는 과정이 생기는 것 같아서 배열만 생성한 뒤, 반복문을 통해 n개의 요소를 가진 배열을 m번 생성한 뒤 push()해서 행렬을 만들었다! 다른 분들을 map()과 reduce()도 사용하셨던데 그것도 도전해봐야겠다...! ⚠️ 아..

Programmers/Level 2 2021.08.20

[Javascript] 프로그래머스 : 프린터

[Javascript] 프로그래머스 Level 2 _ 프린터 👇🏻 Link_Click 👇🏻 시행착오 ( + 코드를 작성하면서든 생각들.) ✏️ 제출 코드 큐 프린터를 구현하는 문제였다! 처음에는 최댓 값을 기준으로 두 덩이로 나눠서 다시 이어 붙이고를 반복해야하나? 생각해서 복잡했었다 ㅠㅠ 하지만 단순하게 해당 타겟이 몇번째로 빠져나가는지만 구하면 되기 때문에 ① 맨 앞의 요소가 max라면 shift()를 해준 뒤 빠져나간 순서를 카운트 해주고, ② 아니라면 shift()와 push()를 함께 사용해 다시 뒤에 이어 붙여주기를 반복하는 과정을 구현했다. 그리고 ① + 조건으로 배열의 남은 요소 중 해당 타겟이 max라면 카운트를 리턴하는 조건을 추가했다. ⚠️ 아래 내용은 모두 개인적인 참고 / 기록을 ..

Programmers/Level 2 2021.08.19

[Javascript] 프로그래머스 : 최솟값 만들기

[Javascript] 프로그래머스 Level 2 _ 최솟값 만들기 👇🏻 Link_Click 👇🏻 시행착오 ( + 코드를 작성하면서 든 생각들.) ✏️ 제출 코드 오늘은 양심적으로 쉬운 거 + 쉬운 거로 하나 더 풀었다 ㅎㅎㅎㅎㅎㅎㅎㅎ 문제는 두 배열의 요소들을 각각 곱했을 때 합이 최솟값이 되도록 만드는 문제였는데 큰 수 일수록 작은 수와 곱해져야 하기 때문에 A 배열의 작은 순서대로 정렬하고, B배열의 큰 순서대로 정렬해서 각각 곱했다 !!!! 역시 문제 풀이를 보니 비슷하게 같은 방법으로 푸신 분들이 많았다...! ⚠️ 아래 내용은 모두 개인적인 참고 / 기록을 위한 용도입니다. 참고해주시고 편안하게 봐주세요 :) ⚠️ *** 혹시라도 잘못된 정보가 있다면 언제든지 알려주시면 감사하겠습니다 ! ***

Programmers/Level 2 2021.08.18

[Javascript] 프로그래머스 : 최댓값과 최솟값

[Javascript] 프로그래머스 Level 2 _ 최댓값과 최솟값 👇🏻 Link_Click 👇🏻 시행착오 ( + 코드를 작성하면서 든 생각들.) ✏️ 제출 코드 오늘은 Level 2의 다른 문제들을 풀어보려고 하다가 ,,,, 동적 계획법에 좌절하고 제일 쉬워 보이는 걸 풀었다 ㅎㅎㅎㅎㅎㅎㅎㅎㅎ 그래도 배열에서 Math.max(), Math.min()을 쓸 수 있게 해 준 잘 써보지 않았던 apply() 함수를 사용해 볼 수 있었다,,, 하하하 🥲 +) 배열에서 Math.max(), Math.min()을 사용하고 싶을 때, ES6 문법인 스프레드 연산자를 사용하면 apply()를 사용하지 않고도 사용할 수 있다! 참고로 코드에 추가했다! ⚠️ 아래 내용은 모두 개인적인 참고 / 기록을 위한 용도입니다...

Programmers/Level 2 2021.08.18

[Javascript] 프로그래머스 : 3진법 뒤집기

[Javascript] 프로그래머스 Level 1 _ 3진법 뒤집기 👇🏻 Link_Click 👇🏻 시행착오 ( + 코드를 작성하면서든 생각들.) ✏️ 제출 코드 - solution 1. 풀고 보니 다들 toString()으로 진법 변환을 하셨다..! 10진수를 다른 진수로 변환할 때는 toString(), 다른 진수를 10진수로 변환하기 위해서는 parseInt()를 사용한다고 한다. 하지만 몰랐기에 그냥 구했다! - solution 2. for문 대신에 reduce()의 콜백 함수의 파라미터로 currentIndex를 추가해서 합을 계산했다! - solution 3. 마지막으로 toString()으로도 바꿔봤다! reduce()와 함께 사용하기 위해 문자열을 정수로 바꿔주는 과정이 추가되었다! +) 오..

Programmers/Level 1 2021.08.17

[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