백준 / 1929번 소수 구하기 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 소수 구하기 문제 사이트: https://www.acmicpc.net/problem/1929 문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 나의 풀이 m, n = map(int,input().split()) sosu = [0] * (n + 1) answer = [] for i in range(2, n + 1): if sosu[i] == 0: answer.append(i) for j in range(i, n + 1, i)..
백준 / 2581번 소수 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 소수 문제 사이트: https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다..
[알고리즘] 정렬 알고리즘 / Python 파이썬
·
python/자료구조 & 알고리즘
정렬이란? 섞여 있는 데이터를 순서대로 나열하는 것 정렬 알고리즘은 시간 복잡도에 따라 성능을 좌우되며 성능이 좋을수록 구현 방법이 어려워진다. 대표적인 정렬의 종류 O(n²)의 시간 복잡도 (정렬할 자료의 수가 늘어나면 제곱에 비례해서 증가) 버블 정렬(Bubble Sort) 선택 정렬(Selection Sort) 삽입 정렬(Insertion Sort) O(n log n)의 시간 복잡도 병합 정렬(Merge Sort) 퀵 정렬(Quick Sort) 1. 거품 정렬 (Bubble Sort) 정렬 중에서도 가장 직관적인 정렬 방식이다. 거품 정렬은 인접한 두 수를 비교하고, 가장 큰 값을 뒤로 보낸다. 알고리즘 동작이 각 순회의 가장 큰 요소가 맨 뒤로 이동(Bubble Up) 하는 방식이기 때문에 지어진..
[deeplearning] 신경망의 이해 - 신경망에서 딥러닝으로
·
공부정리/모두의 딥러닝 (교재 정리)
참고 서적 도서명: 모두의 딥러닝 저자 : 조태호 출판 : 길벗 발매 : 2020.01.27 신경망에서 딥러닝으로 다층 퍼셉트론이 오차 역전파를 만나 신경망이 되었고, 신경망은 XOR 문제를 가볍게 해결하였다. 따라서 이제 신경망을 차곡차곡 쌓아올리면 마치 사람처럼 생각하고 판단하는 인공지능이 금방이라도 완성될 것처럼 보였지만, 기대만큼 결과가 좋지 않았다. 그 이유는 다음과 같다. (1) 기울기 소실 문제와 활성화 함수 오차 역전파는 출력층으로부터 하나씩 앞으로 되돌아가며 각 층의 가중치를 수정하는 방법이다. 가중치를 수정하려면 미분 값, 즉 기울기가 필요한데 층이 늘어나면서 역전파를 통해 전달되는 이 기울기의 값이 점점 작아져 맨 처음 층까지 전달되지 않는 기울기 소실(vanishing gradien..
Programmers / JadenCase 문자열 만들기 / Python 파이썬
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: JadenCase 문자열 만들기 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12951 def solution(s): answer = '' new_s = s.split(" ") # 공백을 기준으로 배열에 단어 저장 for i in range(len(new_s)): if new_s[i] == '': # 문제 point 주어진 공백은 그대로 출력해야함 answer += " " continue if new_s[i] != '': if new_s[i][0].isnumeric(): answer += new_s[i].lower() if new_s[i][0].isalpha(): answer += ..
백준 / 1978번 소수 찾기 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 소수 찾기 문제 사이트: https://www.acmicpc.net/problem/1978 나의 풀이 # 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. def isPrime(x): if x == 1: return False for i in range(2, x//2 +1): if x % i == 0: return False else: return True n = int(input()) m = list(map(int, input().split())) cnt = 0 for i in m: if isPrime(i) == True: cnt += 1 print(cnt) isPrime 함수로 소수를 판별해주었다. for문을 돌면서 입력 받은..
Programmers / 행렬의 곱셈 / Python 파이썬
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 행렬의 곱셈 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12949 나의 풀이 def solution(arr1, arr2): answer = [[0 for _ in range(len(arr2[0]))] for _ in range(len(arr1))] for i in range(len(arr1)): for j in range(len(arr2[0])): for k in range(len(arr1[0])): answer[i][j] += (arr1[i][k] * arr2[k][j]) return answer 행렬의 기본적 곱셈 계산 이미치출처 : https://brunch.co.kr/@li..
Programmers / 피보나치 수 / Python 파이썬
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 피보나치 수 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12945 나의 풀이 1 - 재귀함수 이용 (오답 + 런타임에러) def fibo(n): if n
백준 / 10870번 피보나치 수 5 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 10870번 피보나치 수 5 문제 사이트: https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써..
백준 / 팩토리얼 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 팩토리얼 문제 사이트: https://www.acmicpc.net/problem/10872 나의 풀이 (재귀함수 이용) def factorial(n): result = 1 if n > 1 : result = n * factorial(n-1) return result else: return 1 n = int(input()) print(factorial(n))
[deeplearning] 신경망의 이해 - 오차 역전파
·
공부정리/모두의 딥러닝 (교재 정리)
참고 서적 도서명: 모두의 딥러닝 저자 : 조태호 출판 : 길벗 발매 : 2020.01.27 오차 역전파 신경망 내부의 가중치는 오차 역전파 방법을 사용해 수정한다. 오차 역전파는 경사 하강법의 확장 개념이다. 우리는 XOR 문제를 해결할 때 정답에 해당하는 가중치와 바이어스를 미리 알아본 후 이를 집어넣었다. 그렇다면 이 가중치와 바이어스를 실제 프로젝트에서는 어떻게 구할 수 있을까? 이 부분은 어려운 문제이기도 하고, 딥러닝으로 나아가는 가장 중요한 부분이기도 하다. 우리가 앞서 배운 경사 하강법은 임의의 가중치를 선언하고 결괏값을 이용해 오차를 구한 뒤 이 오차가 최소인 지점으로 계속해서 조금씩 이동시킨다. 이 오차가 최소가 되는 점(미분했을 때 기울기가 0이 되는 지점)을 찾으면 그것이 바로 우리..
Programmers / 신규 아이디 추천 / Python 파이썬
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 신규 아이디 추천 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와..