전체 글 188

[머신러닝/딥러닝 기초] 1. 머신러닝(Machine Learning, 기계학습)이란 무엇인가? 머신러닝(기계학습)과 딥러닝에 대해 공부하다가, 남들에게 설명할 수 있을 만큼 기초 이론에 대한 복습이 필요하다고 생각되어 차근차근 글을 올려보려고 합니다. 머신러닝(기계학습)이란? 기본서와 백과사전에는 항상 기계학습에 대해 아서 사무엘(Arthur Samuel, 1959)의 말을 인용합니다. "머신러닝은 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야다." 이 말을 그대로 받아들이면 이해가 어렵지 않다고 생각합니다. 기계학습은 여러 종류의 데이터들로부터 컴퓨터가 학습할 수 있도록 프로그래밍하는 과학이라고 정의할 수 있습니다. 머신러닝을 왜 사용할까? 머신러닝을 사용하면 이미지, 텍스트, 음성 등의 데이터들을 사용해 여러 가지 작업을 할 수 있습니다. 간단하게는 텍스트를 분석해 .. 머신러닝 & 딥러닝/기초 이론 2022. 2. 8.
백준 10872번 Python / Math 문제 링크 https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 n = int(input()) answer=1 for i in range(1,n+1): answer = answer * i print(answer) 알고리즘 정복하기!/백준 문제풀이 2022. 2. 8.
백준 2908번 Python / Math 문제 링크 https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 풀이 num1, num2 = map(int, input().split()) new1 = (num1//100) + (num1%100//10)*10 + (num1 % 10)*100 new2 = (num2//100) + (num2%100//10)*10 + (num2 % 10)*100 print(max(new1, new2)) - 각 자리의 숫자를 구해 100의 자리 수와 1의 자리 수의 위치를 바꾸어 ma.. 알고리즘 정복하기!/백준 문제풀이 2022. 2. 8.
백준 4673번 Python / Math 문제 링크 https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 풀이 answer=[] for i in range(10000): answer.append(i+1) for i in range(1, 10000): if i < 10: i = i + i elif 10 알고리즘 정복하기!/백준 문제풀이 2022. 2. 8.
백준 3502번 Python / Math 문제 링크 https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 풀이 array = [] for _ in range(10): n = int(input()) n %= 42 if n not in array: array.append(n) print(len(array)) - 10개의 수를 입력해 42로 나눈 나머지 중 없는 수만을 리스트에 넣어 리스트의 길이를 출력했다. 다른 풀이 arr = [] for i in range(10): n = int(input()) arr.append(n % 42) arr = set(arr) pr.. 알고리즘 정복하기!/백준 문제풀이 2022. 2. 8.
백준 4344번 Python / Math 문제 링크 https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 풀이 c = int(input()) for _ in range(c): scores = list(map(int, input().split())) average = sum(scores[1:]) / scores[0] cnt = 0 for i in scores[1:]: if i > average: cnt += 1 answer = cnt/scores[0]*100 print('%.3f' %answer + '%') 알고리즘 정복하기!/백준 문제풀이 2022. 2. 8.
백준 1546번 Python / Math 문제 링크 https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 풀이 n = int(input()) scores = list(map(int, input().split())) high_score = max(scores) total = 0 for i in scores: total += i / high_score * 100 print(total/n) 알고리즘 정복하기!/백준 문제풀이 2022. 2. 8.
백준 11720번 Python / Math 문제 링크 https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 풀이 n = int(input()) number = int(input()) answer = 0 for i in range(10): cnt = str(number).count(str(i)) answer += i * cnt print(answer) - 제출한 풀이 n = input() print(sum(map(int, input()))) - sum()을 사용한 이상적인 풀이 알고리즘 정복하기!/백준 문제풀이 2022. 2. 8.