프로그래밍 57

[React] setstate 사용 시 re-rendering 안되는 오류

개요 React에서 state값을 변경해야할 때, setstate를 사용해서 변경할 수 있다. state값이 변경되면 자동적으로 rendering이 이루어지는데, 이것은 리엑트의 부분 렌더링이라는 기법이다. 변한 state을 사용하는 컴포넌트와 하위 컴포넌트들만 rendering을 해서 효율을 높이는 방식이다. setstate는 비동기적으로 동작하기 때문에 사용후 곧바로 콘솔을 찍어보면 state값이 변화가 없다고 찍힌다. 이것은 당연한 결과라고 한다. 오류 setstate를 사용했는데 rendering이 작동하지 않았다. 해결 1시간 동안 헤멨는데, 콘솔을 여기저기 다 찍어보니깐, useEffect를 사용했을 때도 값이 변화가 없다고 떴다. 분명히 배열의 값이 변했는데 왜 변화가 없다고 뜰까. 친구찬스..

[React] 처음 만난 React(리액트) 강의 정리

element 가장 작은 단위 immutable, 생성 후에 children, attribute를 바꿀 수 없다. 렌더링된 element를 업데이트 하는법. 새롭게 렌더링 하기. components and props component 구성요소 Component-Based 레고 블록 조립하듯 컴포넌트들을 모아서 개발. 개념적으로 JavaScript function과 비슷하다. 입력을 받아서 출력을 내보냄. 입력은 Props, 출력은 React element. component: 붕어빵 틀, element: 붕어빵. props 속성. Component의 속성. props: 붕어빵 재료(팥, 슈크림, 고구마). 모양은 같은데 속은 다른 붕어빵. Read-Only 값을 변경 할 수 없다. 붕어빵 다 구웠는데 속..

[Python] 백준 2476 용액

2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 - www.acmicpc.net 투포인터 : 정렬되어 있기 때문에 포인터 2개가 양쪽 끝에서 부터 만날때까지 조여오면된다. sum_waters에 넣고 마지막에 정렬하려했는데, min_water에 최솟값 1개만 저장하면되기 때문에 sort를 사용안했다. 전체코드 import sys input = sys.stdin.readline N = int(input()) waters = list(map(int, input().split())) # print(N, waters) sum_waters = [..

[MySQL] SQL ZOO Self join Quiz 답 해설

Self join Quiz - SQLZOO sqlzoo.net 1. Self JOIN 사용 Self JOIN이란 자기 자신을 결합 시키는 조인이다. 하지만 어려울 것 없다. 그냥 테이블이 하나 더 있다고 생각하고 그걸 결합하는 것이다. 자기 자신의 데이터가 필요할 수 있고, 그것을 JOIN해서 사용하는 것 뿐이다. name이 Craiglockhart 인 stops의 route는 여러개 일 것이고, 그중 stop이 Haymarket인 데이터를 출력하면 된다. 2. 결합, 그런데 이제 JOIN을 안사용. 복잡해보이겠지만, FROM에 테이블을 여러개 집어넣고 WHERE문에서 조건을 거는 형식이다. 3. Self JOIN 두번 사용 a

[MySQL] SQL ZOO Using Null Quiz 답 해설

Using Null Quiz - SQLZOO Test your understanding of the NULL value teacher id dept name phone 101 1 Shrivell 2753 102 1 Throd 2754 103 1 Splint 104 Spiregrain 105 2 Cutflower 3212 106 Deadyawn dept id name 1 Computing 2 Design 3 Engineering Select the code which uses an outer join sqlzoo.net 1. OUTTER JOIN 사용 JOIN에는 OUTTER와 INNER이 존재하고, OUTTER은 합집합, INNER은 교집합이다. 간단하게 기억을 하려면 OUTTER은 NULL값을 포함하고..

[MySQL] SQL ZOO JOIN Quiz 2 답 해설

JOIN Quiz 2 - SQLZOO Crocodile Dundee in Los Angeles1 sqlzoo.net 1. JOIN의 사용 JOIN 뒤에 ON을 사용한다. BY에 낚이지 말자. 2. JOIN 두번 사용 AND로 합치지 않는다. JOIN XXX ON XXX JOIN ZZZ ON ZZZ 이렇게 연달아 이어 붙여주면 된다. 3. JOIN 사용, GROUP BY, ORDER BY 사용 이게 순서가 있는데, FROM WHERE GROUP BY ORDER BY LIMIT offset 이 순으로 사용하면 된다. ORDER BY 숫자가 나오는데, 직접 돌려보니깐 2번째 인자를 기준으로 정렬해준다. 즉 name, COUNT(movieid) 중 두번째 인자인 COUNT(movieid)로 정렬해준다. ORDE..

[MySQL] SQL ZOO JOIN Quiz 답 해설

JOIN Quiz - SQLZOO 1002 8 June 2012 Stadion Miejski (Wroclaw) RUS CZE sqlzoo.net 1. JOIN의 사용 JOIN 합칠 테이블 ON (합치는 조건) 이렇게 사용하면 된다. game 테이블과 goal 테이블을 연결 시킬 수 있다. game에는 id 값이 하나씩 들어 있다. 하지만 goal에는 matchid 값이 똑같은게 여러개 들어 있다. 한 게임당 골은 여러개씩 나올 수 있고, 골이 없을 수도 있다. JOIN에는 INNER JOIN과 OUTTER JOIN이 있는데 이렇게 그냥 JOIN을 쓰면 INNER JOIN이다. 차이점은 INNER은 교집합, OUTTER은 합집합이다. 골의 데이터 중 matchid값이 없는 것도 있을 것이다. 앞에서 말했듯..

[MySQL] SQL ZOO Nested SELECT Quiz

Nested SELECT Quiz - SQLZOO sqlzoo.net 1. 서브쿼리 ALL의 사용 ALL은 모든 값을 만족 시켜야 참이다. 같은 지역중 인구가 가장 적은 데이터에 접근한다. 2. 서브쿼리 ALL의 사용 이전 문제랑 똑같다. 3. 서브쿼리 ALL의 사용, 나눗셈 연산, != 사용 같은 지역이지만, 자기 자신과 비교하면 안된다. ALL에 같은 지역, 같은 나라가 포함된다면 Less를 만족할 수 없다. 왜냐면 A와 A 나라는 인구수가 같기 때문에 < 연산을 만족할 수 없기 때문이다. 하지만 선택형이기 때문에 여기까지 생각할 필요는 없고 비교와 나누기 연산만 주의해서 선택하면 된다. 4. 서브쿼리의 두번 사용 영국의 지역은 유럽이고, 유럽내의 포함된 나라 이름과 영국의 인구수보다 높은 나라를 표..

[Python] 백준 14567 선수과목 (Prerequisite)

14567번: 선수과목 (Prerequisite) 3개의 과목이 있고, 2번 과목을 이수하기 위해서는 1번 과목을 이수해야 하고, 3번 과목을 이수하기 위해서는 2번 과목을 이수해야 한다. www.acmicpc.net 위상정렬 : 다이나믹 프로그래밍도 사용해야 한다. 처음 진입차수 0을 큐에 넣을때, DP값을 1로 초기화 해준다. 이건 곧바로 이수할 수 있는 과목이기때문에 1을 넣는 것이다. DP[i]값 업데이트는 이전 노드의 DP값 + 1 또는 원래 DP[i]값 중 최댓값을 택하면 된다. 전체코드 import sys import collections input = sys.stdin.readline N, M = map(int, input().split()) inDegree = [0 for _ in ran..

[MySQL] SQL ZOO Nobel Quiz 답 해설

1. LIKE 두번 사용 LIKE 'C%' -> C로 시작하는 문자열 LIKE '%n' -> n으로 끝나는 문자열 이거 두개를 AND로 이어주면 된다. 2. COUNT 사용 COUNT(칼럼명) -> 칼럼의 데이터의 개수 집계함수를 WHERE절에서 사용해야 할때는 주의가 필요하다. 데이터가 여러개 들어와야 사용할 수 있다고 생각하면 편하다. 내가 생각한 팁(아닐 수 있음) SELECT절에서의 subject는 여러개의 subject데이터를 선택을 하니깐 사용가능 WHERE절에서의 subject는 subject칼럼의 데이터 1개 값을 의미하기때문에 사용이 불가능하다. 하지만 서브쿼리를 사용하면 사용이 가능하고 또, HAVING절에서 사용가능하다. 3. DISTINCT 사용, NOT IN 사용 DISTINCT ..