Programmers/Level 1 36

[Javascript] 프로그래머스 : 직업군 추천하기

[Javascript] 프로그래머스 Level 1 _ 직업군 추천하기 (위클리챌린지 4주차) 👇🏻 Link_Click 👇🏻 시행착오 ( + 코드를 작성하면서든 생각들.) ✏️ 제출 코드 +) 어제 풀었던 모의고사와 예전에 풀었던 문자열 마음대로 정렬하기 ? 가 모두 생각나는 문제였다,, ! 다행히도 레벨 1에 해당하는 문제라 복잡해보여서 그렇지 실제로는 어렵지 않았다! 풀다보니 for문과 map()과 forEach()를 골고루 써봤다 ㅎㅎㅎㅎㅎ 통일했으면 보기가 조금 더 편했을 것 같다는 생각이 들어 코드를 정리하며 통일했다! ⚠️ 아래 내용은 모두 개인적인 참고 / 기록을 위한 용도입니다. 참고해주시고 편안하게 봐주세요 :) ⚠️ *** 혹시라도 잘못된 정보가 있다면 언제든지 알려주시면 감사하겠습니다 ..

Programmers/Level 1 2021.08.25

[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] 프로그래머스 : 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

[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

[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