본문 바로가기

분류 전체보기37

[알고리즘] 프로그래머스 숫자 문자열과 영단어 1. 조건 주어진 문자열에서 zero, one, two, ..., nine 와 같은 문자를 숫자 0, 1, 2, ..., 9로 바꾸어서 number형태로 return 해주면 된다. 2. 풀이 과정 그냥 딱봐도 정규표현식 쓰라는것같은데 많이 써본 경험이 없어서 이것저것 찾아보느라 시간이 생각 이상으로 오래걸렸다. 그리고 replace라는 고차함수도 처음 활용해 보았다. (기억나는 부분 한정으로...) 추가: 굳이 정규표현식 안써도 되더라... (4번 참고) 3. 내 코드 function solution(s) { const regexes = [ /zero/gi, /one/gi, /two/gi, /three/gi, /four/gi, /five/gi, /six/gi, /seven/gi, /eight/gi, /n.. 2023. 1. 31.
[알고리즘] 프로그래머스 콜라 문제 1. 조건 단순 구현 문제이다. 그렇게 숫자 크기가 크지도 않고 크기가 큰 배열을 주는것도 아니다. 2. 풀이 과정 n개의 콜라병이 있다고 할때 a개의 빈 콜라병을 가져다주면 b개의 콜라병을 준다고 한다. 그럼 총 받을 수 있는 콜라병의 갯수 result개를 return 하면 된다. 3. 내 코드 function solution(a, b, n) { let result = 0; while (n >= a) { result += parseInt(n / a) * b; n = parseInt(n / a) * b + (n % a); } return result; } 2023. 1. 30.
[알고리즘] 프로그래머스 삼총사 1. 조건 배열이 주어진다. 배열의 길이는 최대 13이라고 한다. 13에 3 조합을 해도 최대 경우의수는 286이므로 부루탈포스로 조져도 될 것 같다. 2. 풀이 과정 진짜 그냥 무지성 3중 for문 했더니 문제는 풀렸다. 하지만 이대로 Git에 커밋푸시를 하려고 보니 코드가 너무 더러워 보였다. 그래서 javascript의 고차함수 reduce를 활용해보기로 했다. (reduce에 대해서 잘 모르기도 하고 클린 코드를 실천할 수 있다는 생각에 망설임 없이 바로 진행했다.) 3. 내 코드 (reduce 활용) 학생 3명이 모이면 reduce를 활용해서 배열을 순회하며 숫자를 더하는 방식이다. 그리고 내가 싫어 하는 재귀함수가 사용됐다. function solution(number) { let result.. 2023. 1. 29.
[알고리즘] 프로그래머스 숫자 짝꿍 1. 조건 우선 X, Y의 길이는 각각 최대 3,000,000이 될 수 있다. 그러므로 아무생각없이 뇌를 비우고 X, Y를 가지고 정렬하고 filter 몇 번씩 돌리면서 구현했다가는 '시간 초과'에 뚜들겨 맞을 가능성이 크다. 내가 그랬다. 2. 풀이과정 앞서 말했듯이 나는 생각없이 조건을 제대로 읽지않고 구현하다 '시간 초과'와 마주하게되었다. 실제로 해당 문제에서 X, Y에 각각 split(" ")과 내림차순 정렬만 작성하고 채점버튼을 누르면 다음과 같은 시간이 나온다. 그러므로 나는 먼저 split을 활용하여 X, Y를 각각 배열로 만들고 고차 함수 filter와 for문을 통해 0부터 9까지 X, Y의 공통되는 숫자를 배열 answer에 순서대로 담았다. 그리고 answer를 내림차순 정렬 및 j.. 2023. 1. 27.
[클린코드 JS] 수강 2일차 # 클린코드 JS (이 글은 유데미아케데미에 있는 poco님의 '클린코드 자바스크립트' 강의를 수강하고 느낀점을 기록한 글임을 밝힙니다!) ## 임시 변수를 제거하자 - 임시 변수를 왜 제거해야할까? - 제거하기 위한 해결책 ## 임시 변수를 제거하자 임시 변수를 왜 제거해야할까? function solution(args) { let answer = 0; . . . return answer; } 다음과 같은 코드가 있다고 생각해보자. 이때 solution이라는 함수의 크기가 커지면 answer도 하나의 전역변수 처럼 되어버릴 수 있다. 이렇다면 코드가 작성된 뒤에 벌어질 상황은 오랜시간이 지난뒤에 내가 코드를 수정하기위해 다시 보았을때 혹은 같은 협업자가 코드를 보게되었을때 혼란이 오기 쉬워진다는 것이다.. 2022. 3. 15.
[클린코드 JS] 수강 1일차 # 클린코드 JS (이 글은 유데미아케데미에 있는 poco님의 '클린코드 자바스크립트' 강의를 수강하고 느낀점을 기록한 글임을 밝힙니다!) ## 클린코드를 왜 고민해야 할까? - 나의 주관적인 생각 - 고민해 볼 항목들 ## var, let, const 에 대하여 - var, let & const - let 보다는 const? - scope와 전역 공간 사용에 대한 이야기 ## 클린코드를 왜 고민해야 할까? 나의 주관적인 생각 클린코드에 대한 나의 주관적인 생각은 무엇보다도 "유지보수" 때문이라고 생각한다. 좀 위험한 발언인가? 왜냐하면 그 누가 보았을때 해당 코드가 무슨 역할을 하는지, 구조는 어떻게 짜여있는지를 파악하기가 정말 쉽다면 해당 서비스는 어떠한 이슈가 생기거나 기능을 추가 및 보완을 할 경.. 2022. 3. 9.