목록2024/02 (14)
JiSoo's Devlog
React Query는 편리한 방식으로 데이터를 fetch 시킬 수 있다 npm i react-router-dom React RouterDom은 어플리케이션에 URL을 가질 수 있게 해 주고 기본적으로 각기 다른 화면을 갖도록 해준다 / -> All coins /:id -> /btc -> Coin Detail Nested router /btc/information /btc/chart Nested Router(중첩된 라우터)란 한 스크린 내에 또 다른 Router를 가질 수 있는 것 Switch는 한 번에 하나의 Route를 렌더링 할 수 있는 방법 Router에게 우리의 URL이 변숫값을 갖는다는 것을 말해주는 방식 import { useParams } from "react-router-dom"; int..
TypeScript는 JavaScript를 기반으로 한 프로그래밍 언어 TypeScript는 strongly-typed인데 프로그래밍 언어가 작동하기 전에 type을 확인한다는 것 코드에 실수가 있어도 프로그램이 작동하기 전에 TypeScript가 알려줄 것이다 => 보호조치 const plus = (a:number, b:number) => a+b; plus(1, 1) // plus("a", 1) 이렇게 하면 오류! TypeScript는 브라우저가 이해하지 못한다 사용자에게 publish 할 때 TypeScript가 compile해서 평범한 JavaScript로 만들어준다 타입스크립트로 리액트 앱 프로젝트 생성 npx create-react-app 내 앱 이름 --template typescript 타입..
dd = {"A+":4.5, "A0":4.0, "B+":3.5, "B0":3.0, "C+":2.5, "C0":2.0, "D+":1.5, "D0":1.0, "F":0.0} t = 0 r = 0 for i in range(20): a, b, c = input().split() b = float(b) if c != 'P': t += b r += b * dd[c] print('%.6f' % (r/t)) r = ['A+', 'A0', 'B+', 'B0', 'C+', 'C0', 'D+', 'D0', 'F'] g = [4.5, 4.0, 3.5, 3.0, 2.5, 2.0, 1.5, 1.0, 0] 리스트나 딕셔너리 둘 다 사용해 풀 수 있다 학점 총합을 답는 t와 학점*과목평점의 총합을 담는 r을 선언하고 0으로 초기화..
리액트에 CSS 적용하는 3가지 방법1. CSS 파일 만들어서 import2. style prop으로 자바스크립트 객체로 스타일 코드 넣어주기 style={{ }}3. CSS 모듈 사용하기 ~~.module.cssCSS 모듈 방식은 className을 랜덤하게 만들어 줘서 이름이 겹칠 걱정 필요 X styled componentsstyled components는 다크 모드, 라이트 모드같은 걸 엄청 쉬운 방식으로 만들 수 있게 도와준다npm i styled-components 백틱(``) 안에 css 코드 쓰기const Father = styled.div`` styled를 import 하고 HTML 태그 사용하기import styled from "styled-components";const Fathe..
from itertools import combinations n, s = map(int, input().split()) a = list(map(int, input().split())) c = 0 for i in range(1, n+1): k = combinations(a, i) for j in k: if sum(j) == s: c += 1 print(c) combinations 함수로 배열에서 뽑을 수 있는 모든 조합 구해주기 조합의 합이 s와 같으면 +1
n = int(input()) dp = [0]*1001 dp[0] = 1 dp[1] = 1 for i in range(2, n+1): dp[i] = dp[i-1] + 2 * dp[i-2] print(dp[n] % 10007) n=3 일 때는 n=2의 타일이 들어있고 n=1의 타일이 2번씩 들어있다 n=4 일 때는 n=3의 타일이 들어있고 n=2의 타일이 2번씩 들어있다 점화식은 dp[i] = dp[i-1] + 2 * d[i-2]
n = int(input()) d = [0]*(n+2) d[1] = 1 d[2] = 1 for i in range(3, n+2): d[i] = d[i-1] + d[i-2] print(d[n+1]%10007) 2xn 타일링 n=1 : 1 n=2 : 2 n=3 : 3 n=4 : 5 이런 식으로 가다 보면 규칙이 피보나치인 게 보인다 f(n) = f(n-1) + f(n-2) (n>=3)
a = input().split("-") s = 0 k = sum(map(int, a[0].split('+'))) if a[0] == '-': s -= k else: s += k for k in a[1:]: k = sum(map(int, (k.split('+')))) s -= k print(s) 입력받은 식에 임의의 괄호를 넣어 최솟값을 만들려면 - 부호가 나오면 그다음 - 부호가 나오지 전까지 괄호로 묶어버리면 된다 그래서 처음 입력받을 때 split("-") 사용 "+" 기준으로 끊고 정수화 한 후 리스트 안의 합 출력
import sys n = int(input()) a = [] for i in range(n): d = list(sys.stdin.readline().rstrip().split()) a.append((d[0], int(d[1]), int(d[2]), int(d[3]))) k = sorted(a, key=lambda x:(-int(x[1]), int(x[2]), -int(x[3]), x[0])) for j in k: print(j[0]) 1. 국어 내림차순 2. 영어 오름차순 3. 수학 내림차순 4. 영어 오름차순 학생 수만큼 입력받고 공백으로 데이터 구분하여 입력받아 리스트로 변환 이름만 string으로 두고 나머지 int로 변환해 a에 넣는다 정렬 기준을 key로 설정해 lambda 사용 lambda ..
n = int(input()) l = {} for i in range(n): a = input() if a not in l: l[a] = 1 else: l[a] += 1 t = max(l.values()) k = [] for a, n in l.items(): if n == t: k.append(a) print(sorted(k)[0]) 딕셔너리를 사용해 횟수를 계산하는 데 사용 딕셔너리에 이미 있다면 1 증가 아니면 그냥 1 key, value 반복문으로 value가 가장 큰 값을 저장한 변수와 같다면 k에 append 사전순으로 먼저 나오는 것을 출력해야 하기 때문에 sorted로 정렬 후 첫 번째 거 출력