분류 전체보기

    프로그래머스 - 괄호 변환 JS

    문제 [https://school.programmers.co.kr/learn/courses/30/lessons/60058] 문제를 정리해보면 주어지는 문자열 p는 항상 '('와 ')'의 갯수가 같은 '균형잡힌 문자열'이다 문자열을 '균형잡힌 문자열'인 u와 v로 분리할 수 있는데, u는 항상 '균형잡힌 문자열'로 더이상 분리할 수 없어야 함 v의 경우 빈 문자열이 될 수 있음 가장 중요한 것은 분리된 v에 대해서는 1단계부터 재귀적으로 실행 이라는 표현인데, 분리된 v를 다시 조건에 맞게 u,v로 분리하는 과정을 반복해야 함 그렇다면 이 재귀함수가 return될 때는 ? v가 더 이상 분리될 수 없을 때 예시에서 나온 "()))((()"을 예로 들면 문자열을 분리할때는 분리된 두 값 모두 '균형잡힌 문자..

    프로그래머스 - 상담원 인원

    문제 현대모비스는 우수한 SW 인재 채용을 위해 상시로 채용 설명회를 진행하고 있습니다. 채용 설명회에서는 채용과 관련된 상담을 원하는 참가자에게 멘토와 1:1로 상담할 수 있는 기회를 제공합니다. 채용 설명회에는 멘토 n명이 있으며, 1~k번으로 분류되는 상담 유형이 있습니다. 각 멘토는 k개의 상담 유형 중 하나만 담당할 수 있습니다. 멘토는 자신이 담당하는 유형의 상담만 가능하며, 다른 유형의 상담은 불가능합니다. 멘토는 동시에 참가자 한 명과만 상담 가능하며, 상담 시간은 정확히 참가자가 요청한 시간만큼 걸립니다. 참가자가 상담 요청을 하면 아래와 같은 규칙대로 상담을 진행합니다. 상담을 원하는 참가자가 상담 요청을 했을 때, 참가자의 상담 유형을 담당하는 멘토 중 상담 중이 아닌 멘토와 상담을 ..

    프로그래머스 - 귤 고르기 JS

    문제 경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다. 예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3] 이라고 합시다. 경화가 귤 6개를 판매하고 싶다면, 크기가 1, 4인 귤을 제외한 여섯 개의 귤을 상자에 담으면, 귤의 크기의 종류가 2, 3, 5로 총 3가지가 되며 이때가 서로 다른 종류가 최소일 때입니다. 경화가 한 상자에 담으려는 귤의 개수 k와 귤의 크기를 담은 배열 tangerine이 매개변수로 주어집니다. 경화가 귤 k개를 고를 ..

    cloneElement

    cloneElement란 [https://react.dev/reference/react/cloneElement] 리액트 최상위 API로 말 그대로 Element를 복제(clone)해서 반환해주는 역할을 함 리액트로 sns 사이트를 만들고 있는데 form을 사용해야 하는 경우가 매우 많음 ex)회원가입 , 로그인 , 프로필 변경 등등... 각 form에서 수집하는 데이터 또한 다르고, form 끼리 중복되지 않는 경우도 있음 회원가입의 경우 아이디,비밀번호,닉네임,폰번호,집주소.... 프로필 변경의 경우에는 프로필사진,닉네임... 그래서 일단 Form과 Input 컴포넌트를 만들어놓고, 필요한 페이지에 따라 Input을 추가하려고 했는데 react-hooks-form을 사용하고 있었기 때문에, Form 컴..

    프로그래머스 - 수식 최대화 JS

    접근법 [+ , - , *] 3가지 연산의 우선순위를 정해 그에 맞게 계산을 한 다음, 그 값(절댓값) 중 가장 큰 값을 return하면 되는데 생각해야 될 문제는 "100-200+300-500+20" 이렇게 연산이 문자열로 나와있어서 연산자와 숫자를 분리시켜야 함 연산자를 계산 후에 그 자리에 계산한 값을 넣어야함 연산자 종류가 무조건 3개라고 한 적은 없음 + 연산자가 중복으로 있을수도 있음 일단 문자열을 숫자와 연산자로 분리해서 배열로 바꿔줬고 연산자의 우선순위 경우의 수를 모두 구해서 반복문으로 하나씩 실행 배열에서 해당 연산자를 찾음(indexOf) 해당 연산자의 index-1 , index+1은 무조건 숫자이기 때문에 이 둘을 연산자 타입에 맞게 계산해줌 [..., - , 200 , * , 3..

    import한 함수 에러 처리법

    addPost: async (e, content) => { e.preventDefault(); const date = dayjs(); try { const docRef = await addDoc(collection(db, "posts"), { content, date: date.format("YYYY.MM.DD HH:mm:ss"), }); } catch (e) { alert("저장에 실패했습니다"); } }, 다른 파일에서 이 함수를 import해서 const handleSubmitEvent = async (e) => { try { const res = await addPost(e, content); setContent(""); } catch (e) { console.log("에러임?"); } }; 이 ..