[Python] print(*list) - list 언패킹해서 출력하기
·
✏️ Study/🐍 Python
📍print 안의 * 의 의미는?- 백준 10810 공 넣기 문제 N, M = map(int, input().split())basket = [0 for _ in range(N)]for i in range(M): x, y, z = map(int, input().split()) for j in range(x - 1, y): basket[j] = zprint(basket) # [1, 2, 1, 1, 0]print(*basket) # 1 2 1 1 10 - 리스트 앞에 * 를 붙이면 리스트를 언패킹해서 출력할 수 있게 해준다- join을 따로 쓸 필요가 없어서 간편하다 📍추가 예시- 백준 10812 바구니 순서 바꾸기 N, M = map(int, input().split())bas..
백준 2740 < 행렬 곱셈 > JavaScript
·
✏️ Study/⚙️ 알고리즘 & 자료구조
📍문제 링크 https://www.acmicpc.net/problem/2740 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.net 📍알고리즘 분류 - 수학 - 구현 - 선형대수학 📍문제 풀이 - N*M 행렬과 M*K 행렬의 곱셈을 출력하라 - 행렬 곱셈 공식 이를 구현하면 된다 📍코드 (JavaScript) const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: ..
백준 2778 < 별 찍기 - 11 > JavaScript
·
✏️ Study/⚙️ 알고리즘 & 자료구조
📍문제 링크 https://www.acmicpc.net/problem/2448 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 📍알고리즘 분류 - 재귀 📍문제 풀이 - N = 3 * 2^k 형태로 주어질 때, (k = 음이 아닌 정수) 별을 찍어라 분할정복을 사용하는 어려운 별 찍기 문제 /* N = 3 * 2^k (k = 0.. 1.. ) k = 0 N = 3 * * * ***** col = 2 * N - 1 = 5 row = N = 3 ------------------------- k = 1 N = 6 * * * ***** * * * * * * ***** *..
백준 2096 < 내려가기 > Python
·
✏️ Study/⚙️ 알고리즘 & 자료구조
📍문제 링크 https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 📍알고리즘 분류 - 다이나믹 프로그래밍 - 슬라이딩 윈도우 📍문제 풀이 세 수가 일렬로 쭉 내려오는 수열이 있다. 내려올 때, 직선, 대각선으로 내려올 수 있다고 할 때 최댓값과 최솟값을 구하라 /* 1번 라인1 2 3 2번 라인4 5 6 3번 라인4 9 0 1 1 2 3 일 때 각 라인에서 가능한 최대 최소 123 최대123 최소123 2 1 2 3 4 5 6 일 때 각 라인에서 가능한 최대 최소..
React에서 자동 슬라이더(캐러셀) 구현하기
·
✏️ Study/⚛️ React
📍구현할 것 1. 좌우 버튼 클릭 시 다음 슬라이드로 넘어감 (React) 2. 슬라이드가 변경될 때 부드럽게 이동 (CSS) 3. 자동 슬라이딩 (React) 📍구현 먼저 슬라이드 컨텐츠 컴포넌트 생성
#31 타입 주변에 null 값 배치하기
·
✏️ Study/🧽 JS & TS
이펙티브 타입스크립트 (댄 밴더캄 지음) 를 읽고 정리 📍요약 ✅JS로 작성한 코드의 확장자를 .ts로 바꿔도 실행 가능하다. (왜냐면) ✅반면, TS로 작성한 코드의 확장자를 .js로 바꾸면 에러가 발생한다. (타입스크립트 별도의 문법 존재) 📍타입 구문을 통해 타입스크립트에게 코드의 의도를 전달 ✅strictNullChecks: false // tsConfig: {"strictNullChecks":false} function extent(nums: number[]) { let min, max; for (const num of nums) { if (!min) { // min 이 undefined 이든 0 이든 이 부분이 실행되어버림 min = num; max = num; } else { min = Ma..
#30 문서에 타입 정보를 쓰지 않기
·
✏️ Study/🧽 JS & TS
이펙티브 타입스크립트 (댄 밴더캄 지음) 를 읽고 정리 📍요약 ✅주석과 변수명에 타입 정보를 적는 것은 피해야 한다 - 타입 선언이 중복되는 것을 넘어 모순이 발생하는 사태가 벌어질 수 있다 ✅타입이 명확하지 않은 경우 변수명에 단위 정보를 포함하는 것을 고려하는 것이 좋다 - timeMs 📍주석을 꼭 써야 할까? - 코드와 주석이 맞지 않으면 둘 다 잘못된 것으로 간주할 수 밖에 없다 - 함수의 입력과 출력의 타입을 코드로 표현하는 것이 주석보다 더 나은 방법이다 📍타입스크립트로 주석을 개선하기 - 특정 매개변수를 설명하고 싶다면 JSDoc의 @param 구문을 사용한다 - 불필요한 주석은 사용하지 않는다 (함수 부연 설명 등) - readonly를 사용하여 주석을 대체하는 예시 /** nums를 변경..
백준 4963 < 섬의 개수 > JavaScript
·
✏️ Study/⚙️ 알고리즘 & 자료구조
📍문제 링크 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 📍알고리즘 분류 - 그래프 이론 - 그래프 탐색 - 너비 우선 탐색 - 깊이 우선 탐색 📍문제 풀이 - 0과 1로 이루어진 좌표 평면이 주어질 때, 1은 땅이고 나머지(빈 공간과 0)는 바다이다 - 8 방면으로 연결되면 하나의 공간이라고 할 때, 섬의 갯수를 구하라 - 입력받는 방법이 조금 특이해서 shift로 하나씩 빼서 사용했다 - 1인 좌표에 대해 BFS를 실시하여 큐에 넣..