Data is ___ ?
article thumbnail
에라토스테네스의 체

에라토스테네스의 체 알고리즘 특정한 수의 범위 안에 존재하는 모든 소수를 찾아야 할 때 다수의 자연수에 대하여 소수 여부를 판별할 때 사용하는 대표적인 알고리즘 에라토스테네스의 체 알고리즘의 구체적인 동작 과정 1) 2부터 N까지의 모든 자연수를 나열한다. 2) 남은 수 중에서 아직 처리하지 않은 가장 작은 수 i를 찾는다. 3) 남은 수 중에서 i의 배수를 모두 제거한다. (i는 제거하지 않음 !) 4) 더 이상 반복할 수 없을 때까지 2번과 3번의 과정을 반복한다. 에라토스테네서의 체 알고리즘 동작 예시 1) 2부터 N까지의 모든 자연수를 나열한다. 2) 아직 처리하지 않은 가장 작은 수 2를 제외한 2의 배수는 모두 제거한다 3) 아직 처리하지 않은 가장 작은 수 3을 제외한 3의 배수는 모두 제거..

[파이썬] 약수, 배수, 소수

import math a,b = map(int, input().split()) math.gcd(a,b) math.lcm(a,b)

집합과 맵

백준 단계별로 풀어보기(집합과 맵) 파트에서 계속 시간초과가 발생했다. 해결방법으로는 두가지 정도로 요약할 수 있는데, 첫번째로는 리스트 대신 딕셔너리 사용, 두번째로는 개수를 세는 문제에서 for문을 돌면서 세지 말고 파이썬 함수 Counter를 사용하는 것이다. 이 두가지에 대해서 정리를 해보고자 한다. 딕셔너리 diction_name = {} diction_name[key_name] = value_name 딕셔너리를 { }를 통해 하나 만든다. 리스트와 달리 값을 추가할 때 list_name.append(value)가 아니라 key를 찾아서 value를 지정해주는 형식 Counter from collections import Counter c = Counter(nm_name) key 값으로는 이름,..

재귀함수

정의 재귀함수는 함수 안에 함수를 호출하는 함수 (자기 자신을 호출하는 형태) 함수 내에서 그 함수를 다시 사용하는 것 더보기 ⚠ return : 함수를 실행했던 위치로 돌아가라, 함수를 여기서 끝내라는 의미 주의할점 재귀함수는 자기 자신을 호출하기 때문에, 잘못하면 무한히 호출할 수 있다. 따라서 탈출 조건이 필수이다. 예제 간단한 예제 def recursion(n) : # n이 0이면 빠져나오기 if n == 0 : return 0 # n 출력 print(n) # 다시 recursion 함수에 n-1 입력 return recursion(n-1) ---------------------------------------------------------------------------------- recur..

article thumbnail
[Pytorch] torch.max( ) & torch.argmax( )
Python/라이브러리 2023. 1. 30. 12:31

torch.max : 최댓값을 출력 dim=0이면 dim=1이면 뭐를 기준으로 어떻게 더한다...이런게 나는 헷갈려서 터득한 방법이 있다 ! torch.sum과 마찬가지로 인덱스를 이용하여 구하는 방법 예를 들어, 아래와 같이 dim=0을 기준으로 하면 인덱스 0번째 값이 5이므로, 5개가 묶인 곳 중에서 최댓값 하나를 산출하고 나머지 1번째 인덱스 값만큼의 크기로 출력 (즉, (1, 3)크기의 행렬이 출력된다.) >>> import torch >>> a = torch.randn(5, 3) >>> print(a) """ tensor([[-1.1260, -0.7415, -0.9703], [-0.8786, -1.6561, -0.2796], [ 0.1368, 0.8606, -0.3936], [-1.1206, ..

article thumbnail
[백준] 10989번 수 정렬하기 (브론즈 1)
Python/코딩테스트 2023. 1. 29. 22:27

문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 입력 및 출력 예시 예제 입력 예제 출력 10 1 1 2 2 3 3 4 5 5 7 5 2 3 1 4 2 3 5 1 7 풀이 💡 먼저 생각해야 할 것 범위가 커서 시간초과, 런타임 에러 등이 발생할 수 있으므로 무조건 input( )으로 숫자를 받는것은 위험하다는 것을 먼저 생각하자. 그러면 생각할 수 있는 쉬운 방법이 sys.stdin.readline( ) (하지만 이렇게..

article thumbnail
[Pytorch] GPU device
Python/라이브러리 2023. 1. 28. 14:34

만약 데이터가 GPU를 사용해서 학습을 해야하는 상황이라면 코드 내에서 해당하는 데이터들을 GPU용 텐서로 변환해 주어야 한다. 먼저 device를 정의해주기 ! import torch device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") CNN 추가추가 RNN 데이터 처리 시퀀스 데이터를 만드는 함수 내에서 x_seq, y_seq를 변환 후 return y데이터는 view를 사용하여 2차원으로 바꿔준다. 왜냐하면 MSE Loss가 기본적으로 2차원 target data를 받기 때문 ! return torch.FloatTensor(x_seq).to(device), torch.FloatTensor(y_seq).to(device).v..

article thumbnail
[Pytorch] Dataset, DataLoader
Python/라이브러리 2023. 1. 27. 18:54

📚 파이토치에는 Dataset과 DataLoader라는 기능이 있어서 미니 배치 학습이나 데이터 셔플, 병렬 처리 까지 간단히 수행할 수 있다. 📚 TensorDataset을 DataLoader에 전달해서 데이터의 일부만 간단히 추출할 수 있다. TensorDataset 🎀 개념 Dataset을 상속한 클래스로 학습 데이터 X와 레이블 Y를 묶어 놓는 컨테이너이다. 이것을 DataLoader에 전달하면 for 루프에서 데이터의 일부분만 간단히 추출할 수 있게 된다. TensorDataset에는 텐서만 전달할 수 있으며, Variable은 전달할 수 없으니 주의 Dataset은 직접 작성할 수도 있어서 대량의 이미지 파일을 한 번에 메모리에 저장하지 않고 필요할 때마다 읽어서 학습하는 등 다양하게 활용할 ..

article thumbnail
[백준] 9020번 골든바흐의 추측 (실버2)
Python/코딩테스트 2023. 1. 22. 20:18

문제 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. (하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아니다. ) 골드바흐의 추측은 유명한 정수론의 미해결 문제로, 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다는 것이다. 이러한 수를 골드바흐 수라고 한다. 또, 짝수를 두 소수의 합으로 나타내는 표현을 그 수의 골드바흐 파티션이라고 한다. 예를 들면, 4 = 2 + 2, 6 = 3 + 3, 8 = 3 + 5, 10 = 5 + 5, 12 = 5 + 7, 14 = 3 + 11, 14 = 7 + 7이다. 10000보다 작거나 같은 모든 짝수 n에 대한 골드바흐 파티션은 존재한다. 2보다 큰..

article thumbnail
[Python] 파이썬 파일 관련 코드들
Python/라이브러리 2023. 1. 20. 06:39

glob 특정 디렉토리에 있는 파일들을 하나씩 읽을 때 해당 디렉토리의 파일명을 리스트로 받아와야 하고 이때 glob 사용 filelist = glob.glob(os.path.join(root, "trainA") + "/*.*") for file in filelist: pass 파일명을 리스트로 받은 후에 다양한 옵션을 사용해서 정렬 변경 가능 # 파일명 filelist = sorted(glob.glob(os.path.join(root, "trainA") + "/*.*")) # 파일 생성일 filelist = sorted(glob.glob(os.path.join(root, "trainA") + "/*.*"), key=os.path.getctime) # 파일 최근 접근일 filelist = sorted(g..

profile on loading

Loading...