⭐️ Memory
[CodeKata] moreThanHalf 함수 구현하기
[CodeKata] moreThanHalf 함수 구현하기
2022.05.17문제 숫자로 이루어진 배열인 nums를 인자로 전달한다. 숫자중에서 과반수가 넘은 숫자를 반환해주세요. nums 배열의 길이는 무조건 2개 이상으로 가정한다. ex. nums = [3, 2, 3] => return 3 nums = [2, 2, 1, 1, 1, 2, 2] => return 2 function moreThanHalf(nums) { const result = {}; nums.map(item => { if(result[item]) { return result[item] = result[item] + 1; } else { return result[item] = 1; } }) for(let i in result) { if(result[i] > (nums.length/2)) { return Numbe..
[CodeKata] romanToNum 함수 구현하기
[CodeKata] romanToNum 함수 구현하기
2022.05.16문제 로마자에서 숫자로 바꾸기 1~3999 사이의 로마자 s를 인자로 주면 그에 해당하는 숫자를 반환한다. 로마 숫자를 표기하면 아래와 같다. Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1000 로마 숫자를 읽는 방법은 로마자를 왼쪽부터 차례로 더하면 된다. III=3, XII=12, XXVII=27 그런데 4를 표현할 때는 IIII가 아닌, IV로 뒤의 숫자에서 앞의 숫자를 뺀다. 9의 경우는 IX로 표현한다. IV=4, IX=9, XL=40, XC=90, CD=400, CM=900 const roman = { 'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000 } const romanToNum = (r..
React 댓글기능 구현하기
React 댓글기능 구현하기
2022.05.15📝 개요 JavaScript로 구현한 로그인, 댓글 기능을 React로 바꾸고자 한다. 댓글 기능을 구현하면서 React의 props, state 개념을 이해한다. 댓글을 구현하기 위해 사용한 state let [userName] = useState('hacker'); let [comment, setComment] = useState(''); let [feedComments, setFeedComments] = useState([]); let [isValid, setIsValid] = useState(false); userName 같은 경우는 사용자 정보를 받아오지 않고 'hacker'라는 내용을 담아놓고 사용하고 있다. comment는 사용자가 입력하고 있는 댓글이다. 태그에서 onChange를 이용하여..
위코드 3주차 회고 - React
위코드 3주차 회고 - React
2022.05.15📝 React, Sass를 배우며 정신없이 하루를 보내다 보니 어느덧 3주 차가 지나고 있다. 3주 차에서는 기존에 만들었던 인스타그램 클론코딩을 토대로 React로 바꾸는 작업을 했다. 새로운 개념 JSX, component, props, state, router 등을 익히고 곧바로 적용하는 식으로 React를 익혀가고 있다. 또한 적용하면서 CSS가 제대로 적용되지 않는 상황을 마주하게 되었고, 어떻게 해야 할지 고민하고 있을 때 Sass라는 개념을 배우게 되었다. 3주 차에서는 '나에게만 주어지는 시간 하루 이틀만 더 있으면 좋겠다.'라는 생각이 머릿속을 떠나지 않았다. 아직도 익혀야 할 개념과 기술들이 한참 남은 지금, 나만의 시간이 조금만 더 있다면 얻을 수 있는 게 더 많을 텐데 라는 상상을 ..
[CodeKata] getPrefix 함수 구현하기
[CodeKata] getPrefix 함수 구현하기
2022.05.13문제 strs은 단어가 담긴 배열이다. 공통된 시작 단어(prefix)를 반환하기로 한다. 예를 들어 strs=['start', 'stair', 'step'] return은 'st' strs = ['start', 'wework', 'today'] return은 '' const getPrefix = strs => { let prefix = ''; // prefix 없을 경우 ''을 반환한다. let sortStrs = strs.sort(); if(sortStrs.length === 0){ return '' } for(let i = 0; i
[CodeKata] sameReverse 함수 구현하기
[CodeKata] sameReverse 함수 구현하기
2022.05.12문제 숫자 num을 인자로 넘기면, 뒤집은 모양이 num과 똑같은지 여부를 반환한다. return은 true or false (뒤집은 모양이 num과 똑같은가?) num = 123일 경우, return은 false (뒤집은 모양이 321 이기 때문) num = 1221일 경우, return은 true (뒤집은 모양이 1221이기 때문) num= -121일 경우, return은 false (뒤집은 모양이 121-이기 때문) num = 10일 경우, return은 false (뒤집은 모양이 01이기 때문) 풀이 const sameReverse = num => { const nums = parseInt(num.toString().split('').reverse().join('')); return (nums =..
[CodeKata] getLengthOfStr 함수 구현하기
[CodeKata] getLengthOfStr 함수 구현하기
2022.05.11문제 String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요. str : 텍스트를 반환하는데 중복되지 않은 알파벳 길이(숫자 반환) 예를 들어, str = "abcabcabc"라면, return은 3이다. 왜냐하면 'abc'가 가장 길기 때문이다. str = "aaaaa" retrun은 1이다. 왜냐하면 'a'가 가장 길기 때문이다. str = "sttrg" retrun은 3이다. 왜냐하면 'trg'가 가장 길기 때문이다. 풀이 얼추 for문으로 문자열 하나하나를 비교하며 slice() 메서드를 사용하는 것까지는 접근했지만 도저히 해결할 수 없었다. 그래서 구글에 모범 답안을 가져와서 이해하고 정리하는 시간을 가졌다. const getLengthOfStr ..
[CodeKata] reverse 함수 구현하기
[CodeKata] reverse 함수 구현하기
2022.05.10문제 reverse 함수에 정수인 숫자를 인자로 받는다. 그 숫자를 뒤집어서 return 해주세요. 1. 인자로 1234 숫자가 들어왔다면 4321이라는 숫자를 반환해야 한다. 2. 인자로 -1234 숫자가 들어왔다면 -4321이라는 숫자를 반환해야 한다. 3. 인자로 1230 숫자가 들어왔다면 321이라는 숫자를 반환해야 한다. 풀이 짝이랑 진행한 코드 function reverse(nums) { let numToString = nums.toString(); // 숫자를 문자열로 let arr = numToString.split(''); // 문자열을 배열로 let arrReverse = arr.reverse(); // 배열을 거꾸로 if(arrReverse.includes('-')) { return ..
[CodeKata] twoSum 함수 구현하기
[CodeKata] twoSum 함수 구현하기
2022.05.09문제 twoSum 함수에 숫자배열과 '특정 수'를 인자로 넘기면, 더해서 '특정 수'가 나오는 index를 배열에 담아 return해주세요. nums : 숫자 배열 target : 두 수를 더해서 나올 수 있는 합계 return : 두 수의 index를 가진 숫자 배열 예시) nums는 [4, 9, 11, 14]이며, target은 13이다. nums[0] + nums[1] = 4 + 9 = 13이다. 그러면 return 값으로 [0, 1]이 되야 한다. 풀이 첫 번째 코드 for(let i=0; i