Programmers / N개의 최소공배수 / Python 파이썬
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: N개의 최소공배수 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12953 나의 풀이 def solution(arr): max_num = max(arr) # 리스트에서 가장 큰수 n = 1 while True: answer = max_num * n # 가장 큰수의 배수를 최소공배수로 tmp = True for i in arr: tmp = True if max_num * n % i != 0: # 리스트 안의 수가 최소공배수의 배수의 약수가 아닐경우 tmp = False # False를 반환 break # for 문을 빠져나가고 n+1을 해줌 if tmp == True: # for 문의 ..
백준 / 10828번 스택 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 스택 문제 사이트: https://www.acmicpc.net/problem/10828 나의 풀이 import sys n = int(sys.stdin.readline()) new_stack = [] cnt = 0 for _ in range(n): tmp = sys.stdin.readline().split() if tmp[0] == "push": new_stack.append(tmp[1]) elif tmp[0] == "pop": if new_stack == []: print(-1) else: print(new_stack[-1]) new_stack.pop() elif tmp[0] == "size": print(len(new_stack)) elif tmp[0] ==..
백준 / 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))