본문 바로가기

티스토리챌린지10

[프로그래머스 Lv.1] 기사단원의 무기 javascript function solution(number, limit, power) { let answer = 0; // 1에서 number까지 각 숫자의 약수 개수 계산 for (let i = 1; i limit) { answer += power; // 제한 초과 시 power 추가 } else { answer += divisorCount; // 제한 내면 그대로 추가 } } return answer; // 필요한 철의 총 무게} 2024. 11. 27.
[프로그래머스 Lv.1] 2016년 function solution(a, b) { const days = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]; // 2016년 a월 b일의 Date 객체 생성 // 월은 0부터 시작해서 -1 해줘야 함 const date = new Date(2016, a - 1, b); // 해당 날짜의 요일 const dayIndex = date.getDay(); // 요일 반환 return days[dayIndex];} 2024. 11. 25.
[프로그래머스 Lv.1] 폰켓몬 function solution(nums) { let newArr = Array.from(new Set(nums)); return newArr.length === nums.length / 2 || newArr.length 2024. 11. 22.
[프로그래머스 Lv.1] 카드 뭉치 javascript 다른 블로그에서 참고한 코드... (어려웡....)function solution(cards1, cards2, goal) { for(const s of goal) { if(cards1[0] == s) { cards1.shift(); }else if(cards2[0] == s) { cards2.shift(); }else { return "No" } } return "Yes"} shift() 메서드를 이번에 또 새롭게 알게 됐다..! mdn 문서의 설명이다.shift() 메서드는 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환합니다. 이 메서드는 배열의 길이를 변하게 합니다. .. 2024. 11. 21.
[프로그래머스 Lv.1] 명예의 전당(1) function solution(k, score) { let list = []; // 명예의 전당 리스트 let answer = []; for (let s of score) { list.push(s); // 현재 가수의 점수 추가 list.sort((a, b) => b - a); // 내림차순 정렬 if (list.length > k) { list.pop(); // k개 초과 시 가장 낮은 점수 제거 } answer.push(list[list.length - 1]); // 최하위 점수 저장 } return answer;} 2024. 11. 19.
[TIL] zustand 사용 시 state.state와 getState()의 차이 1. useUserStore((state) => state.isLoggedIn)특징React 컴포넌트에서 주로 사용: 이 방식은 Zustand 상태를 React 컴포넌트에 연결합니다.Zustand의 상태(isLoggedIn)를 구독(subscribe) 합니다.상태가 변경되면 컴포넌트가 자동으로 다시 렌더링됩니다.상태 관리와 React의 재렌더링 메커니즘이 결합됩니다.예시function Header() { const isLoggedIn = useUserStore((state) => state.isLoggedIn); return {isLoggedIn ? "Logged In" : "Logged Out"};}장점React와 상태의 동기화가 자동으로 이루어짐.상태가 변경되었을 때 React 컴포넌트를 다시 렌.. 2024. 11. 17.
[React] input 값을 useState로 상태 관리 할 때 defaultValue를 왜 사용하면 안될까? 사이드프로젝트 하는 중 마이페이지에서 닉네임을 가져와야하는데 작은 문제가 생겼다.처음에 로그인한 유저의 닉네임을 그대로 가져오기 위해 input 태그에 defaultValue={user.nickname}을 하고,닉네임 변경하기 위해 새로운 닉네임 값으로 value={nickname}을 속성에 넣었더니 아래처럼 에러 메세지가 찍혔다. value와 defaultValue를 같이 쓰지 말라는 거였다. 왜 안될까? 이유는 value와 defaultValue가 서로 다른 방식으로 동작하기 때문이다.defaultValue: 컴포넌트가 처음 렌더링될 때만 적용되는 초기 값. 상태가 아닌, 기본적으로 입력될 값으로 한 번만 설정된다.value: 컴포넌트의 상태를 직접적으로 반영한다. useState로 상태를 관리하고.. 2024. 11. 15.
[모던리액트 Deep Dive] 5장 리액트와 상태 관리 라이브러리 5.1 상태 관리는 왜 필요한가?상태는 어떠한 의미를 지닌 값으로 애플리케이션의 시나리오에 따라 지속적으로 변경될 수 있는 값을 의미한다.5.1.1 리액트 상태 관리의 역사 Flux 패턴의 등장 양방향 데이터 바인딩이 아닌 단방향으로 데이터 흐름을 변경함Action -> Dispatcher -> Model -> View 액션(action) : 어떤 작업을 처리할 액션과 그 액션 발생 시 함께 포함시킬 데이터를 의미한다. 액션 타입과 데이터를 각 정의해 dispatcher로 전달한다.디스패처(dispatcher) : 콜백 함수 형태로 액션이 정의한 타입과 데이터를 모두 store로 보내는 역할을 한다.스토어(store) : 실제 상태의 값과 상태를 변경할 수 있는 메서드를 가지고 있다.뷰(view) : 리.. 2024. 11. 14.
[프로그래머스 Lv.1] 콜라문제 javascript function solution(a, b, n) { let total = 0; while (n >= a) { // 받을 수 있는 콜라 수 (정수 나눗셈으로 계산) const newCola = Math.floor(n / a) * b; // 받은 콜라 수 총합 total += newCola; // 남은 콜라병 + 교환하고 남은 병 n = newCola + (n % a); } return total;} 2024. 11. 12.
[프로그래머스 Lv.1] k번째 수 function solution(array, commands) { let answer = []; for(var i=0; i(a - b)); answer.push(list[commands[i][2]-1]); } return answer;} 2024. 11. 8.