분류 전체보기443 [프로그래머스] OX퀴즈 def solution(quiz): answer = [] for i in quiz: data = i.split() result = int(data[-1]) formula = ''.join(data[:-2]) if eval(formula) == result: answer.append("O") else: answer.append("X") return answer 이번 문제는 주어진 수식들을 계산한 결과가 맞았을 경우에는 O, 틀렸을 경우에는 X를 반환할 수 있도록 하는 문제이다. 수식의 각 항들을 공백 기준으로 리스트에 저장한 뒤에 결과 값과 계산식의 결과를 비교하여 문제를 풀이하였다 :) 2023. 7. 20. [프로그래머스] 문자열 계산하기 def solution(my_string): data = my_string.split() # ['3', '+', '4'] answer = int(data[0]) for i in range(1,len(data)-1,2): if data[i] == '+': answer += int(data[i+1]) else: answer -= int(data[i+1]) return answer 이번 문제는 주어진 수식 문자열을 계산하여 결과를 리턴하는 문제이다. 처음에는 문자열을 모두 순회하며 + 인지 - 인지 저장해가며 풀었는데, 테스트케이스에서 실패하여 연산자를 기준으로 값을 처리했더니 통과할 수 있었다. eval 함수 : 매개변수로 받은 expression(우리가 아는 일반적인 사칙연산 '식')을 문자열로 받아서 실.. 2023. 7. 20. [프로그래머스] 옹알이(1) def solution(babbling): answer = 0 available = ('aya','ye','woo','ma') available_prefix = ('a','y','w','m') def checkFunc(arr): arr_length = len(arr) i = 0 while(i 2023. 7. 18. [React] useMemo를 이용한 성능 최적화 1) 메모이제이션(memoization) useMemo 함수에 대해서 알아보기 전에 알고리즘 시간에 자주 나오는 메모이제이션(memoization) 개념에 대해서 잠깐 짚고 넘어가겠습니다. memoization이란 기존에 수행한 연산의 결과값을 자료구조에 저장해두고 동일한 입력이 들어오면 재활용하는 프로그래밍 기법을 말합니다. memoization을 적절히 적용하면 중복 연산을 피할 수 있기 때문에 메모리를 조금 더 쓰더라도 애플리케이션의 성능을 최적화할 수 있습니다. 2) 렌더링마다 호출되는 컴포넌트 함수 function MyComponent(props) { // 어떤 로직 (JavaScript) return; /* 어떤 화면 (JSX) */ } 일반적으로 React의 함수형 컴포넌트는 다음과 같은 구.. 2023. 7. 18. [React] useCallback을 이용한 성능 최적화 원래 컴포넌트가 렌더링 될 때 그 안에 있는 함수도 다시 생성하게 됩니다. 하지만 똑같은 함수를 컴포넌트가 리렌더링 된다고 해서 계속 함수를 다시 만드는 것은 좋은 현상이 아닙니다. 그리고 이렇게 컴포넌트가 리렌더링 될 때마다 함수를 계속 다시 만든다고 하면 만약 이 함수가 자식 컴포넌트에 props로 전달되면 함수가 다시 생성될 때마다 자식 컴포넌트가 리렌더링 하게 됩니다. 1) useCallback 이란 ? const memoizedCallback = useCallback(함수, 배열); useCallback()은 함수를 메모이제이션(Memoization)하기 위해서 사용되는 hook 함수입니다. 즉, 메모이제이션된 함수를 반환하는 함수입니다. useCallback 적용은 useCallback 안에 .. 2023. 7. 18. [JS & React] 얕은 비교(Shallow Equal)란 ? / 리액트에서 컴포넌트가 리렌더링되는 경우 1) 얕은 비교 const obj1 = { a: 1, b: 2 }; const obj2 = { a: 1, b: 2 }; console.log(obj1 === obj2); // false 원시 타입 데이터의 경우 '값'이 동일한지만 비교하고, 배열과 객체과 같은 참조 타입 데이터의 경우 '참조값'만 비교한다. 2) 깊은 비교 const obj1 = { a: 1, b: 2 }; const obj2 = { a: 1, b: 2 }; console.log(JSON.stringify(obj1) === JSON.stringify(obj2)); // true 얕은 비교와 달리 깊은 비교는 객체의 경우에도 값으로 비교한다. 깊은 비교 방법은 아래와 같다. 1️⃣ Object depth가 깊지 않은 경우 : JSON.st.. 2023. 7. 18. 이전 1 ··· 42 43 44 45 46 47 48 ··· 74 다음