일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 블록체인
- frontend
- 클로저
- Javascript
- 자바스크립트
- Execution context
- BOJ
- 변수
- 함수
- 프로퍼티
- 딥다이브
- nft
- 정렬
- solidity
- git pull
- 파이썬
- let
- 리액트
- Deep Dive
- 알고리즘
- Algorithm
- 백준
- Python
- react
- 솔리디티
- 실행 컨텍스트
- Interview
- Queue
- blockchain
- var
- Today
- Total
목록파이썬 (8)
공부하자

소수(Prime Number)란? 1과 그 수 자신 이외의 자연수로는 나눌 수 없는 자연수 소수를 판별하는 데는 2가지 방법이 있다. 특정 수 N이 소수인지 알기위해, 2부터 N-1까지의 수로 N을 나눠보고, 어떤 수로도 나눠 떨어지지 않는 다면 N은 소수. 에라토스테네스의 체를 이용하는 방법 1. 2부터 n-1까지의 수로 n을 나눠보기 첫번째 방법을 코드로 나타내면 다음과 같다. def isPrime(n): for i in range(2, n): if n % i == 0: return False return True 이 코드는 2부터 n-1까지 모든 숫자를 확인하며 소수인지 판별하는 방법이기 때문에 시간 복잡도가 O(n)이 나온다. 숫자가 커질수록 오래걸린다. 여기서 약수의 특성인 대칭성을 사용하면 연..

문제 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (10 ≤ N import sys input = sys.stdin.readline n, s = map(int, input().split()) arr = list(map(in..

문제 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더한 값이고, f(A)로 표현한다. x보다 작거나 같은 모든 자연수 y의 f(y)값을 더한 값은 g(x)로 표현한다. 자연수 N이 주어졌을 때, g(N)을 구해보자. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 100,000)가 주어진다. 둘째 줄부터 테스트 케이스가 한 줄에 하나씩 주어지며 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 각각의 테스트 케이스마다, 한 줄에 하나씩 g(N)를 출력한다. import sys ans = [..

문제 지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다. 보드가 체스판처럼 칠해져 있다는 보장이 없어서, 지민이는 8×8 크기의 체스판으로 잘라낸 후에 몇 개의 정사각형을 다시 칠해야겠다고 생각했다. 당연히 8..

문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. # 메모리 초과 n = int(input()) array = [0] * (n + 1) data = [] for i in range(n): data.append(int(input())) array[data[i]] += 1 for i in range(len(array)): for j in range(array[i]): print(i) n = int(sys.stdin.readline())..

정렬 : 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 선택 정렬 정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환해 나가는 방식. 알고리즘 문제 풀이에는 비효율적 선택 정렬의 시간 복잡도 : O(N²) array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(array)): min_index = i for j in range(i + 1, len(array)): if array[min_index] > array[j]: min_index = j array[i], array[min_index] = array[min_index], array[i] print(array) 삽입 정렬 아직 정렬되지 않은 임의의 데이터를 이미 정렬된 ..

CodeUp 설명을 참고하여 비트 단위 연산을 정리해보았다. 연산자 비트 단위 예 & AND a & b | OR a | b ^ XOR a ^ b ~ NOT ~a 2 *비트 단위 연산자들은 말 그대로 비트 단위로 연산을 진행하며 그 대상은 반드시 "정수"여야 합니다. 실수에 대해서는 비트 연산이 불가능합니다. 1. & 연산자 : 두 개의 비트가 모두 1일 때 1을 반환하는 연산 [& : and, ampersand, 앰퍼센드] 예를 들어 3과 5가 입력되었을 때를 살펴보면 3 : 00000000 00000000 00000000 00000011 5 : 00000000 00000000 00000000 00000101 3 & 5 : 00000000 00000000 00000000 00000001 이 된다. 비트단..

파이썬의 기초를 어느정도 끝내놓고 장고를 시작했다. Wikidocs에 있는 점프 투 장고를 바탕으로 공부를 시작하였고 좀 더 오래 기억하고자 앞으로 배운 내용을 정리하는 글을 올릴 예정이다! 오늘은 간단하게 장고로 개발 환경을 준비하는 과정을 정리 할 것이다. 1. 가상 환경 - 파이썬은 프로젝트를 진행할 때마다 독립적인 환경을 만들 수 있다. 이를 가상 환경이라고 한다. 즉, 하나의 데스크탑 안에 독립된 가상 환경을 여러 개 만들 수 있다는 뜻이다. 1) 가상 환경 디렉터리 생성하기 윈도우에서 명령 프롬프트를 실행하고 다음의 명령어를 적어 venvs라는 디렉토리를 만들었다. C:\Users\(사람마다 다름)> cd \ C:\> mkdir venvs C:\> cd venvs * venvs는 파일 이름으로..