본문 바로가기

반응형

분류 전체보기

(107)
구현: 백준 1157 파이썬(Python) 문제: https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 풀이: word = input() word = list(word.upper()) alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] cnt = [] cnt.extend([0] * 26) for i in word: for j ..
구현: 백준 2750 파이썬(Python) 문제: https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 풀이: n = int(input()) arr = [] for i in range(n): arr.append(int(input())) arr.sort() for i in range(n): print(arr[i])
구현: 백준 1110 파이썬(Python) 문제: https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 풀이: n = int(input()) def cycle_sum(n): num = [] num.append(n//10) num.append(n % 10) sum = num[0] + num[1] cycle = (num[1]*10) + (sum % 10) return cycle temp = cycle_sum(n) count = 1 while(1): if(temp == n): bre..
React(리액트): 커스텀 Hook 만들어 사용하기 이번에는 Custom Hook을 만드는 방법에 대해서 알아보자. const onChange = (e) => { const {name, value } = e.target; setInputs({...inputs, [name]: value}); } 컴포넌트를 만들다 보면 가끔씩 반복되는 로직들이 발생한다. 다음과 같이 input을 관리하는 코드는 꽤나 많이 작성하게 될 수 있는 코드다. input을 관리하려면 'e.target' 안에 있는 name과 value를 읽어서 이를 참조해 어떤 새로운 상태를 설정해야 하기 때문이다. 이러한 상황에서는 우리가 custom Hook을 만들어 사용할 수 있다. 즉, 우리만의 Hook을 만든다는 소리이다. 리액트에 내장되어있는 useEffect, useState, useRe..
React(리액트): useReducer (컴포넌트 상태 관리, 업데이트) 이번에는 useReducer라는 Hook에 대해 알아보자. 이전에는 컴포넌트의 상태를 업데이트해야 할 때는 useState를 사용해서 새로운 상태를 설정해주었는데 useState 말고 useReducer를 사용해서도 상태를 업데이트해줄 수 있다. 이 둘의 차이점에 대해 살펴보자. 먼저 useState는 설정하고 싶은 다음 상태를 직접 지정해주는 방식으로 상태를 업데이트해주는 반면에 useReducer는 'action'이라는 객체를 기반으로 상태를 업데이트한다. 여기서 'action' 객체는 업데이트할 때 참조하는 객체이다. useReducer라는 Hook 함수를 사용하면 컴포넌트의 상태 업데이트 로직을 컴포넌트에서 분리시키는 것이 가능하다. 심지어 다른 파일에 작성 후 불러올 수도 있다. 여기서 redu..
React(리액트): 최적화 함수들 useMemo, useCallback, React.memo useMemo 이번에는 'useMemo'라는 Hook을 사용해서 이전에 연산된 값을 재사용하는 방법에 대해서 알아보자. 이 Hook 함수는 주로 성능을 최적화해야 하는 상황에서 사용한다. 이전 글에서 만든 컴포넌트들에 이어서 만들어보도록 하겠다. App.js 컴포넌트의 users 배열에서 active 값이 true인 객체의 수 ('계정명'의 글자가 초록색)를 표시하는 함수를 만드는 것을 예제로 하겠다. App.js function countActiveUsers(users){ console.log('활성 사용자 수를 세는중....'); return users.filter(user=> user.active).length; } App.js의 맨 윗부분에 작성해준 코드이다. 이 함수는 users배열을 파라미터로..
React(리액트): useEffect(마운트, 언마운트 업데이트시 할 작업 설정) 이번에는 리액트의 useEffect라는 Hook 함수에 대해서 알아보자. 이 useEffect함수를 사용하게 되면 우리가 만든 리액트 컴포넌트가 처음 화면에 나타나게 될 때, 그리고 화면에서 사라지게 될 때 특정 작업을 할 수 있고, 추가적으로 컴포넌트의 어떤 props나 상태가 바뀌어서 업데이트될 때에도 어떤 작업을 할 수 있고 업데이트 되기 전에도 어떤 작업을 할 수 있다. 리 렌더링 될 때마다 어떤 작업을 등록할 수도 있다. 직접 사용하면서 이해를 해보자. 우선 컴포넌트가 마운트 될 때, 언마운트 될 때 특정 작업을 처리해 볼 것이다. 여기서 마운트는 나타나는 것을 의미한다. 컴포넌트가 나타나는 것을 마운트라 하고 삭제 될 때는 언마운트라고 한다. 2021.07.26 - [React.js] - Re..
구현: 백준 10820 파이썬(Python) 문제: https://www.acmicpc.net/problem/10820 10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 풀이: string = [] while True: try: string = input() except: break low, upp, num, space = 0, 0, 0, 0 for i in string: if (i.islower()): low += 1 elif(i.isupper()): upp += 1 elif(i.isdigit()): num += 1 elif(i == " "): spa..

반응형