전체 글 462

[알고리즘] 백준 9461 파이썬 - 파도반 수열

9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. N이 주어졌을 때, P(N)을 구하는 프로그램을..

[알고리즘] 백준 15650 파이썬 - N과 M(2)

15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 고른 수열은 오름차순이어야 한다. 문제풀이 n,m = list(map(int,input().split())) s=[] def dfs(start): #01 if len(s)==m: #02 print(' '.join(map(str,s))) return for i in range(start,n+1)..

[인공지능] 강화학습 기법 - 종류와 해당 알고리즘 정리

1. 강화학습 기법이란? - 강화학습 기법은 환경과 상호작용해 얻은 정보를 바탕으로 에이전트의 모델을 업데이트하고, 그 모델을 사용해 에이전트의 정책을 개선하는 것이다. 이후 에이전트는 개선한 정책을 사용하거나 다른 정책을 사용해 환경과 상호작용한다. 환경에서 행동을 취하면 '현재 상태', '행동', '다음 상태'의 상태 전이 정보와 '보상'을 데이터로 얻는다. 그다음은 얻은 데이터를 기반으로 에이전트 내의 모델을 업데이트 한다. 이 모델은 모델기반 강화학습에서 환경의 작동 원리가 될 것이고, 모델프리 강화학습에서는 가치함수나 몬테카를로 방식으로 얻은 보상의 합이 될 것이다. 이렇게 얻은 정보를 처리해 모델을 업데이트한 후 모델을 사용해 정책을 개선한다. 끝으로 개선한 정책 또는 다른 정책을 사용해 환경..

[알고리즘] 백준 1676 파이썬 - 팩토리얼 0의 개수

1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. 문제풀이 def factorial(n): ans=1 for i in range(2,n+1): ans*=i return ans x = str(factorial(int(input()))) cnt=0 for i in range(len(x)-1,-1,-1): if(x[i]!="0"): break else: cnt+=1 print(cnt) - 문제의 요점은 N!의 값을 뒤에서부터 0이 아닌 다른 숫자가 나올 때 까지 0의 개수를 세는 것이다. - 일단 N..

[알고리즘] 백준 4153 파이썬 -직각삼각형

4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 문제 과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오. 문제풀이 while True: arr = list(map(int,input().split())) if(arr[0]==0 and arr[1]==0 and arr[2]==0): break arr.sort() if(arr[0]!=0 and arr[1]!=0 and arr[2]!=0): if(arr[0]**2+arr[1]**2==arr..

[정보] 재택 부업 - 집에서 할 수 있는 부업 총 정리

​ ​1. 블로그 광고를 통한 수익 창출하는 부업 -예시로 네이버 블로그와 티스토리가 있다. 네이버의 경우는 애드포스트라는 시스템을 이용한다. 위 사진과 같이 미디어에 광고를 게재하고 발생하는 수익을 배분하는 시스템이다. 하지만 애드포스트를 통해 광고를 게재하려면 "미디어 등록"에 통과하여야 한다. 적게는 월에 몇 천원 몇 만원 부터 많게는 몇 백만원까지도 벌 수 있다. (애드포스트 승인과 관련된 내용은 아래 링크를 참조) ​ 애드포스트 - 일평균 40으로 승인받기 (with 애드포스트 승인 조건, 승인 과정) ​ 1. 애드포스트 승인 조건 블로그를 개설한 지 90일이 경과 게시글 50개 이상 일 방문자 100명 이상 ​ 위와 같이 일반적으로 인터넷에서 알려진 애드포스트 승인 조건이다. 위 2개의 조건은..

일상 2022.11.07

[인공지능] 강화학습 프로세스 - 4단계로 정리하기

1. 강화학습 프로세스의 단계 1. 문제 파악하기 2. 강화학습 문제로 정의하기 3. 강화학습 기법 선택 및 에이전트 학습하기 4. 강화학습 에이전트 성능 평가 및 배포하기 2. 문제 파악하기 - 강화학습 프로젝트에서 필수적이고 중요한 단계이다. 일반적으로 '제어 또는 행동을 찾는 문제인가?', '최적의 행동이 무엇인지 정의할 수 있는 평가 지표가 있는가?'라는 두 질문에 '그렇다'라면 강화학습을 시도해 볼 만한 문제라고 간주한다. 강화학습 기법은 문제를 주로 마르코프 결정 과정으로 정의한다. 마르코프 결정 과정은 '가장 중요한 성질은 새로운 상태가 현재 상태와 행동에만 의존한다'는 것이다. 이전 상태와 이전 행동은 독립적이어야만 마르코프 결정 과정이라 할 수 있다. 또한 마르코프 결정 과정에는 상태와 ..

[알고리즘] 백준 파이썬 14425 - 문자열 집합

14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 문제 총 N개의 문자열로 이루어진 집합 S가 주어진다. 입력으로 주어지는 M개의 문자열 중에서 집합 S에 포함되어 있는 것이 총 몇 개인지 구하는 프로그램을 작성하시오. 문제풀이 import sys input =sys.stdin.readline N,M = map(int,input().split()) arr=[] arr2=[] for _ in range(N): arr.append(input().rstrip()) for _ in ran..

[인공지능] 강화학습 개념 정리 (with 마르코프 결정 과정, 탐색-이용 트레이드오프)

1. 강화학습이란? - 강화학습 문제는 기본적으로 '환경', '에이전트', '상태', '행동', '보상'이라는 요소로 이뤄진다. 강화학습의 목표는 환경 안에 있는 에이전트가 환경과 상호작용을 하면서 최적의 의사결정을 하는 것이다. 에이전트와 환경 간의 상호작용은 상태, 행동, 보상을 주고받음으로써 이뤄진다. 에이전트는 환경에게 행동을 제공하고, 환경은 에이전트에게 상태와 보상을 제공하는 방식이다. 에이전트의 행동을 받아들인 환경은 에이전트에게 새로운 상태와 보상을 제공한다. 상태는 에이전트가 처한 상황을 나타낸다. 에이전트가 행동을 취해 현재 상태에서 다음 상태로 바뀌는 것을 '상태 전이'라고 한다. - 보상은 에이전트의 행동을 평가할 수 있는 지표이다. 상태, 행동, 보상은 강화학습 문제를 정의하는 주..

[알고리즘] 백준 2231 파이썬 - 분해합

2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생..