2024/07 39

JadenCase 문자열 만들기

프로그래머스 - JadenCase 문자열 만들기 처음 작성한 코드function solution(s) { var answer = ''; let sSplit = s.split(' ') for (let i = 0; i 들어온 문자열을 띄어쓰기 기준으로 나눠주고나눠진 단어를 알파벳별로 나누어 첫 글자만 대문자로, 나머지는 소문자로 만들어 answer에 그대로 넣는 방식이다.그리고 마지막에 띄어쓰기가 더해져 trim으로 제거하였다.8번 케이스가 실패했다.아마도 띄어쓰기가 문제인것으로 생각된다.띄어쓰기가 연속해서 나오게 되면 split할 때에 빈 문자열이 sSplit배열에 들어가기 때문이라고 생각하며, s로 들어온 문자열 중 단어의 맨 앞만 대문자, 나머지 단어는 소문자로 바꿔야한다.예를 들어 '..

24.07.05 react-router-dom으로 페이지 이동 구현하기 / 모든 페이지에 Header, Footer 적용하기

1. react-router-dom 라이브러리 설치//vscode 터미널에 입력yarn add react-router-dom 2. 페이지 컴포넌트 생성페이지 폴더로 구분지어서 생성해주는 것이 알아보기 좋다. 3. Router생성//Router.jsimport React from 'react';// 1. react-router-dom을 사용하기 위해서 아래 API들을 import 합니다.import { BrowserRouter, Route, Routes } from 'react-router-dom';// 2. Router 라는 함수를 만들고 아래와 같이 작성합니다.//BrowserRouter를 Router로 감싸는 이유는,//SPA의 장점인 브라우저가 깜빡이지 않고 다른 페이지로 이동할 수 있게 만들어줍니..

2차 공부/TIL 2024.07.05

최댓값과 최소값

프로그래머스 - 최댓값과 최소값띄어쓰기로 각 숫자를 구분한 문자열이 들어올 때 해당 문자열에서 최댓값과 최소값을 리턴하는 문제이다. 먼저 작성한 코드function solution(s) { let numArr = s.split(' ').sort((a,b) => a-b) let positiveNum = [] let negativeNum = [] numArr.map((num) => Number(num)>0 ? positiveNum.push(Number(num)) : negativeNum.push(Number(num)) ) if (positiveNum.length === 0) { return [negativeNum[0], negativeNum[negativeNum.len..

신고 결과 받기

프로그래머스 - 신고 결과 받기id순서배열과 신고내역 배열, 정지기준이 인자로 들어오고, 피신고인의 피신고량이 정지기준을 넘기면 신고자에게 신고결과메일을 발송한다.이때 모든 id_list에 대한 신고결과메일 발송량을 리턴하면 된다. function solution(id_list, report, k) { var answer = []; //누가 누구들을 신고했는지에 대한 배열 let reportArr = {} //누가 누구들에게 의해서 신고당했는지에 대한 배열 let reportedArr = {} //각 id마다 신고, 피신고 배열을 만들어 객체에 넣어줌 id_list.forEach((id) => { reportArr[id] = [] report..

24.07.03 TodoList페이지에 redux 사용하기

기존 TodoList는 props를 자식 컴포넌트에 넘겨주어 상태를 관리했다.이번엔 redux 라이브러리를 사용하여 전역 store에 state를 저장하고, 그것을 가져와 사용하는 것을 적용해보고자 한다. 먼저, redux 폴더를 만들고 config, modules폴더를 만들어 configStore, todo파일을 생성했다. 그리고 todo.jsx파일에 리듀서코드를 작성했다.Todo는 추가, 제거, 완료/취소 기능만 구현하면 되므로, 세가지 ActionValue를 만들어 기능을 구현하고자 한다.// src/modules/todo.js//Action Valueconst ADD_TODO = 'ADD_TODO';const TOGGLE_TODO = 'TOGGLE_TODO';const DELETE_TODO = '..

2차 공부/TIL 2024.07.03

24.07.02 redux로 counter기능 구현하기

//App.js 더하기 빼기먼저 App.js를 다음과 같이 설정한다.input에 숫자를 입력하고 더하기 버튼을 누르면 더해지고, 빼기버튼을 누르면 빼지는 기능을 구현할 것이다.// src/App.jsimport React, { useState } from 'react';import { useDispatch, useSelector } from 'react-redux';import { addNumber } from './redux/modules/counter';const App = () => { const dispatch = useDispatch(); const [number, setNumber] = useState(0); //store에서 state의 counter모듈에서..

2차 공부/TIL 2024.07.02

달리기 경주

function solution(players, callings) { //rank배열 생성 let rank = [...players] //callings의 요소들을 돌면서 해당 순서의 값의 위치를 찾아내 //앞 등수의 이름을 저장해두고, call요소를 앞으로 보내고 저장해둔 앞 등수의 이름을 //call의 등수였던 곳으로 바꿀 생각이다. for (let call of callings) { let presentCallRank = rank.indexOf(call) let aboveRankName = rank[presentCallRank-1] rank[presentCallRank-1] = call rank[presentCallRank..

개인정보 수집 유효기간

프로그래머스 - 개인정보 수집 유효기간terms로 제공된 약관 종류에 따라 설정된 유효기간에 맞추어 개인정보 수집일에 더해 현재날짜인 today와 비교하여같은날이거나 지난 개인정보는 answer에 해당 번호를 넣어 리턴하는 문제이다. 처음 작성한 코드function solution(today, terms, privacies) { var answer = []; //비교하기 위해 today를 연 월 일로나눠 배열에 넣음 let todaySplit = today.split('.') let todayYear = todaySplit[0] let todayMonth = todaySplit[1] let todayDate = todaySplit[2] //각 약..