본문 바로가기

전체 글90

[React] Immer를 사용한 불변성 지키기 immer를 사용하면 불변성을 해치는 코드를 작성해도 대신 불변성 유지를 해줍니다. 우리는 보통 배열을 변경할 때 합칠때는 concat, 찾거나 뺄 때는 filter, 리스트를 뿌릴 때는 map을 사용하여 불변성을 지켜주면서 배열을 수정합니다. 허나 immer를 사용하면, push나 직접적인 값 설정이 가능해집니다. 먼저 immer를 설치해줍니다. $yarn add immer 또는 $npm i immer 그리고 상단에 import produce from "immer"; 를 작성해주고 immer로 사용해도 되지만, 보통 produce로 많이 사용합니다. produce 함수를 사용 할 때에는 첫번째 파라미터에는 수정하고 싶은 상태, 두번째 파라미터에는 어떻게 업데이트하고 싶을지 정의하는 함수를 넣어줍니다. .. 2021. 5. 20.
[알고리즘] 숫자만 추출하기 ❓숫자만 추출하기 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만 듭니다. 만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205 이 됩니다. 추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다. ▣ 입력설명 첫 줄에 숫자가 썩인 문자열이 주어집니다. 문자열의 길이는 50을 넘지 않습니다. ▣ 출력설명 첫 줄에 자연수를 출력합니다. ▣ 입력예제 1g0en2T0s8eSoft ▣ 출력예제 1208 💡 문제풀이 1. 정규식으로 대체하기 function solution(str) { let answer = ""; answer = str.toLowerCase().replace(/[a-z]/g, '') r.. 2021. 5. 20.
[알고리즘] 유효한 팰린드롬 ❓유효한 팰린드롬(회문 문자열)을 검사하시오 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 합니다. 문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램을 작성하세요. 단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않습니다. 알파벳 이외의 문자들의 무시합니다. ▣ 입력설명 첫 줄에 정수 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다. ▣ 출력설명 첫 번째 줄에 팰린드롬인지의 결과를 YES 또는 NO로 출력합니다. ▣ 입력예제 1 found7, time: study; Yduts; emit, 7Dnuof ▣ 출력예제 1 YES 💡 문제 풀이 function solution(s) { let answer = "YES.. 2021. 5. 20.
[알고리즘] 회문 문자열 ❓ 회문 문자열을 찾아라 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다. 문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력 하는 프로그램을 작성하세요. 단 회문을 검사할 때 대소문자를 구분하지 않습니다. ▣ 입력설명 첫 줄에 정수 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다. ▣ 출력설명 첫 번째 줄에 회문 문자열인지의 결과를 YES 또는 NO로 출력합니다. ▣ 입력예제 1 gooG ▣ 출력예제 1 YES 💡 문제 풀이 1. for문을 이용해서 결과 도출 function solution(s) { let answer = "YES"; s = s.toLowerCase(); let len = s.length; for (le.. 2021. 5. 18.
[알고리즘] flag변수를 이용한 봉우리 개수 구하기 ❓봉우리 개수 구하기 지도 정보가 N*N 격자판에 주어집니다. 각 격자에는 그 지역의 높이가 쓰여있습니다. 각 격자 판의 숫자 중 자신의 상하좌우 숫자보다 큰 숫자는 봉우리 지역입니다. 봉우리 지역이 몇 개 있는 지 알아내는 프로그램을 작성하세요. 격자의 가장자리는 0으로 초기화 되었다고 가정한다. 만약 N=5 이고, 격자판의 숫자가 다음과 같다면 봉우리의 개수는 10개입니다. ▣ 입력설명 첫 줄에 자연수 N이 주어진다.(1= 0 && ny = arr[i][j]) { flag = 0; // boolean false를 뜻함 break; } } if (flag) answer++; } } return answer; } let arr = [[5, 3, 7, 2, 3], [3,.. 2021. 5. 18.
이사업체 여직원이 썼다는 미친꿀팁.txt #1~2달전 (짐정리슬슬 시작하시고) 01.세탁기는 이사 전 물 빼고, 세제가 자동 투입되는 모델이라면 미리 세제통 비워두세요 02.이사 중 컴퓨터 고장이 잦은 편이니 미리 차에 옮겨둘 것 추천 03.옷정리 하나하나 정리하다보면 안입는옷 한무더기 나올꺼에요 이거 수거함에 버리지마시고 아름다운가게에 신청하세요 3박스 이상이면 전화나 온라인으로 신청이 가능해요 그럼 와서 직접 가져가주니까 편해요 그리고 기부영수증발급하면 소득공제도 가능하니까 그냥 수거함에 버리는것보다 낫겠네요^^ 1577-1113, http://www.beautifulstore.org 아름다운가게 아름다운가게는 물건의 재사용과 순환을 통해 우리 사회의 생태적·친환경적 변화에 기여하고, 국내외 소외이웃과 공익활동을 지원하고 있습니다. www... 2021. 5. 17.
[알고리즘]격자판 최대합 구하기 ❓ 격자판 최대합 구하기 5*5 격자판에 아래롸 같이 숫자가 적혀있습니다. [자바스크립트 알고리즘 문제풀이] N*N의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가 장 큰 합을 출력합 니다. ▣ 입력설명 첫 줄에 자연수 N이 주어진다.(1 2021. 5. 14.
[알고리즘]등수 구하기 N(1 1); // let answer = Array.from({ length: arr.length }, () => 1); 자바스크립트에서는 배열을 객체로 분류하고 있기 때문에, Array.from(배열, 함수)에서 배열의 길이를 받아온 arr.length로 정의하고 그것을 모두 1로 초기화 시켜주도록 하였습니다. 2021. 5. 14.
[React]배열 렌더링하기 userList.js import React from "react"; function User({ user }) { return ( {user.username} ({user.email}) ); } function UserList() { const users = [ { id: 1, username: "홍길동", email: "hong@hong.com", }, { id: 2, username: "임꺽정", email: "lim@lim.com", }, { id: 3, username: "최배달", email: "choi@choi.com", }, ]; return ( {users.map((user) => ( ))} ); } export default UserList; 배열 객체를 만들어놓고 객체를 하나씩 찍어줄.. 2021. 5. 13.