본문 바로가기
728x90

전체 글429

자료구조론 과제(1) Array Stack 과제 ArrayStack.h #ifndef ARRAYSTACK_H #define ARRAYSTACK_H #include using namespace std; class StackEmpty { public: StackEmpty(const string& err) { } }; class StackFull { public: StackFull(const string& err) { } }; template class ArrayStack { enum { DEF_CAPACITY = 100 };// default stack capacity public: ArrayStack(int cap = DEF_CAPACITY);// constructor from capacity int size() const;/.. 2023. 2. 17.
시뮬레이션 알고리즘(백준 #1966) Implementation / Simulation 시뮬레이션(Simulation) 알고리즘은 흔히 구현(Implementation) 알고리즘과 특별한 구분없이 쓰인다. 구현 알고리즘이란 문제를 봤을때 떠오르는 해결책은 단순한데 이를 코드로 구현하는 것의 복잡도가 높은 알고리즘을 말한다. 백준에서 시뮬레이션 문제로 구분되어있는 1966번 프린터 큐 문제를 통해 알아보고자 한다. #1966 프린터 큐 우선 FIFO 기반인 큐를 통해 우선 순위를 부여하여 우선순위 큐와 같은 구현을 하고자 하는 문제이다. # 3 -> 3번 테스트 할 것 # 1 0 -> 문서는 1개, 0번 인덱스 문서의 출력순서는? # 5 -> 중요도 = 5 # 4 2 -> 문서는 4개, 2번 인덱스 문서의 출력순서는? # 1 2 3 4 -> .. 2023. 2. 16.
Baekjoon Training #11725 #11725 트리의 부모 찾기 import sys sys.setrecursionlimit(10**9) # 재귀의 깊이 제한을 풀어줌 input=sys.stdin.readline n=int(input()) graph=[[] for _ in range(n+1)] # 빈 2차원 리스트 graph생성 checked=[0 for _ in range(n+1)] # 0으로 채워진 2차원 리스트 checked생성 answer=[1 for _ in range(n+1)] # 1으로 채워진 2차원 리스트 answer생성 # dfs 인접노드 체크 함수 def dfs(node): checked[node]=1 # 체크하는 노드를 체크완료 표시로 1을 입력 for i in graph[node]: if checked[i] == 0:.. 2023. 2. 13.
브루트포스 알고리즘(Backtracking, DFS, BFS) Brute Force Algorithm 브루트 포스 알고리즘(Brute Force Algorithm)은 컴퓨터 과학에서 올바른 해결책이 발견될 때까지 가능한 모든 해결책을 시도하여 복잡한 문제를 해결하는 데 사용되는 기술이다. 브루트 포스 알고리즘은 암호학, 비밀번호 크래킹, 최적화 문제 등 다양한 분야에서 사용될 수 있다. 그러나 브루트 포스 알고리즘에서 사용되는 세 가지 일반적인 테크닉인 백트래킹, 깊이 우선 검색(DFS) 및 폭 우선 검색(BFS)을 중심으로 코딩에서 브루트 포스 알고리즘이 어떤식으로 이용되는지 간단한 파이썬 코드 예제를 이용하여 보고자 한다. Backtracking Algorithm 백트래킹 알고리즘은 브루트 포스 알고리즘에 포함된다고 할 수도 있지만 어떻게 보면 거의 같다고 할 .. 2023. 2. 12.
AI스터디자료-1주차 1주차 PPT 자료 딱 정해진 포함관계는 아니지만 흔히 위와 같이 분류하곤한다. 딥러닝의 가장 큰 특징은 인공신경망을 이용하여 방대한 데이터를 다룬다는 것이다. Machine은 가중치 즉,Parameter와 변수로 구성된 y=ax1+bx2+c와 같이 함수로 독립변수(Feature)와 종속변수(Label)의 관계를 표현하는 Model인 것이다. 이때 가중치(Parameter)를 결정하도록 하는 과정을 우리는 Model을 Training시킨다고 하고 해당 Model로 문제를 예측하는 과정을 추론이라고 한다. 강화학습은 ML, DL과는 조금 결이다른 내용으로 각 state에서 최선의 reward를 찾아가도록 하는 Model을 만드는 과정이라고 볼 수 있다. 가장 좋은 예시로 알파고가 있다. 한수(state)마.. 2023. 2. 11.
Baekjoon Training #1759 #1759 암호 만들기 combination 활용 import sys from itertools import combinations input = sys.stdin.readline l, c = map(int, input().split()) letters = list(map(str, input().split())) # 사전순으로 정렬 letters.sort() # 가능한 조합 전부 생성 pos_code = combinations(letters, l) # 모음 리스트 생성 vowel = ['a', 'e', 'i', 'o', 'u'] # 모음 1개 이상, 자음 2개 이상인 코드만 출력 for code in pos_code: vowel_num = 0 const_num = 0 for i in range(l): i.. 2023. 2. 9.
식단 평가 프로그램 (Back-end 연결을 중심으로) Diet_Judgement 아래 코드는 다이어트 분석을 수행하고 백엔드 서버와 통신하여 데이터를 검색하고 전송하는 파이썬 코드이다. 식단 평가는 "diet_judgement"라는 함수를 통해 수행된다. 나이, 키, 몸무게, 성별, 칼로리 섭취, 단백질 섭취, 탄수화물 섭취, 지방 섭취, 운동 시간 등 다양한 파라미터가 필요하다. 이 기능은 주어진 매개변수를 이용해 기초대사량(BMR)과 총에너지지출(TEE)을 계산한 뒤 각 macronutrient(단백질, 탄수화물, 지방)와 일일 권장치의 비율을 비교해 식단의 균형 여부를 판단한다. import requests calorie_judgement = "default" protein_judgement = "default" carbohydrate_judgemen.. 2023. 2. 8.
체중 감소 예측 프로그램 (딥러닝) Weight-Loss-Prediction (with ANN) 가상 데이터 생성하는 소스코드 data.py import random import numpy as np import csv import matplotlib.pyplot as plt # Create a list to store the data data = [] m_weight_graph = [] m_redu_graph = [] f_weight_graph = [] f_redu_graph = [] total_reduced_weight = 0 total_weight = 0 total_fat_per = 0 # Generate data for 10,000 people for i in range(30000): # Create a dictionary to s.. 2023. 2. 7.
[논문 리뷰] Deep Sparse Rectifier Neural Networks Deep Sparse Rectifier Neural Networks by Xavier Glorot et al. (2011) https://proceedings.mlr.press/v15/glorot11a/glorot11a.pdf -요약- 이 논문은 깊은 희소 Rectifier 신경망 구조를 소개하고 검증한다. 그 결과, Sparse rectifier neural network는 기존의 깊은 신경망보다 더 높은 성능을 보여주고, 제안된 구조의 효과가 입증되었다는 것을 보여준다. 논문의 핵심은 Rectifier 활성화 함수와 희소 정규화를 결합함으로써, 기존의 Deep neural network보다 더 높은 성능과 이해하기 쉬운 구조를 제공하는 것이다. Sigmoid neuron이 hyperbolic tang.. 2023. 2. 5.
Baekjoon Training #1193 #1193 분수찾기 문제를 보자마자 짜본 단순한 코드 import sys input = sys.stdin.readline numer_list = [] denom_list = [] numer = 1 denom = 1 trigger = 0 n = int(input()) for i in range(n): numer_list.append(numer) denom_list.append(denom) if (numer == 1) and (trigger == 0): denom += 1 trigger = 1 elif (denom == 1) and (trigger== 0): numer += 1 trigger = 1 else: if (numer + denom) % 2 == 1: numer += 1 denom -= 1 if d.. 2023. 2. 4.
Udemy - 머신러닝의 모든 것 (Multiple Linear Regression-1) Multiple Linear Regression 이전 강의에서 가장 단순한 형태의 회귀인 단순 선형 회귀를 배웠다면 조금은 성능과 복잡성이 높은 다중 선형 회귀에 대하여 공부를 했다. 선형 회귀를 이용하기 위한 조건 선형성 (Linearity): 회귀분석에서 선형적 관계를 갖는 것을 의미한다. 예를 들어, 종속 변수와 한 개 이상의 독립 변수 간에 선형 관계가 존재한다면, 그것은 선형성을 만족한다고 할 수 있다. 동분산성 (Homoscedasticity): 회귀분석에서 표준 편차가 일정한 것을 의미한다. 즉, 모든 관측치에 대해 오차 편차가 같다면, 그것은 동분산성을 만족한다고 할 수 있다. 다변수 정규성 (Multivariate normality): 회귀분석에서 모든 변수가 정규 분포를 따른다는 것을 .. 2023. 2. 3.
Baekjoon Training #10844 #10844 쉬운 계단 수 import sys input = sys.stdin.readline n = int(input()) dp = [[0] * 10 for _ in range(n + 1)] # 1부터 9까지의 수로 첫번째 배열을 채움 for i in range(1,10): dp[1][i] = 1 # dp[n자리 수][n자리 숫자일 때 해당 index 앞에 올 수 있는 일의 자리 수] # 2 자리수부터 시작 for i in range(2, n+1): for j in range(10): # index기반으로 전부 조사 # 뒷자리가 0일 때는 이전에 한가지 경우의 합으로 구함 if j == 0 : dp[i][j] = dp[i-1][j+1] # 뒷자리가 9일 때는 이전에 한가지 경우의 합으로 구함 elif .. 2023. 2. 2.
728x90