분류 전체보기
-
데이터 전처리 과정machine learning 2024. 2. 25. 15:41
데이터 분석을 위해 모델을 사용하거나, 특정 목적에 사용하기 위한 모델을 학습시키려고 하는 경우, 데이터에 대한 전처리 과정은 굉장히 중요하다. 특히 모델이 잘 학습할 수 있도록 data를 scaling하고 불필요하거나 잘못 입력된 결측 값들을 사전에 제거하는 것은, 정제된 데이터를 사용함으로써 효율적으로 모델이 학습되고 사용할 수 있는 도구로서 잘 기능할 수 있도록 하는 첫 걸음이다. 사실상 다양한 라이브러리를 통해 모델을 쉽게 import 하여 사용할 수 있다는 점에서, 어떤 problem을 해결하고자 모델을 사용할 것인지에 관한 목적을 명확히 설정하는 것과 더불어, 이를 위해 데이터를 어떻게 구축하여 사용할 것인가 하는 것 역시 굉장히 중요한 문제이다. 효과적인 데이터 전처리를 위해서는 정말 다양한..
-
N개의 최소공배수python algorithm 2024. 2. 25. 15:38
[문제] 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요. [제한 사항] arr은 길이 1이상, 15이하인 배열입니다. arr의 원소는 100 이하인 자연수입니다. [풀이] def solution(arr): answer = 1 for i in arr: answer = lcm(answer, i) return answer # 최대공약수 def gcd(x,..
-
최대공약수와 최소공배수python algorithm 2024. 2. 25. 15:17
[문제] 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. [제한 사항] 두 수는 1이상 1,000,000이하의 자연수입니다. [풀이] def solution(n, m): n_list = [] # 최대공약수 찾는 과정 for i in range(n, 0, -1): if (n % i == 0) and (m % i == 0): n_list.append(i) a = max(n_list) b = max(n_list) * (n // max(n_list)) *..
-
카펫python algorithm 2024. 2. 23. 21:44
[문제] Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. [제한사항] 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다. [풀이] # 약수 문제 def solution(brown, yellow): answer = [] num = brown + yellow..
-
멀리 뛰기python algorithm 2024. 2. 23. 12:19
효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. [문제] 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다. [제한 사항] 1
-
MLEdeep learning 2024. 2. 23. 00:15
신경망 모델의 output을 바라보는 두 가지 관점 input에 대한 output이 특정 label일 확률로 보는 경우 (Bernoulli) 이 관점에서 신경망 모델의 weights는 input data가 정답 label일 확률을 높일 수 있도록 학습 이 관점에서 model의 목적은 lassification의 관점과 유사하게, input data가 특정 label을 가질 확률을 높이도록 weight를 조절하는 것 input에 대한 output이 input data의 attribute의 확률분포의 평균 값으로 보는 경우 (Gaussian) 이 관점에서 신경망 모델의 weight는 output이 정답 label이 갖는 확률분포의 평균 값을 출력할 수 있도록 학습 이 관점에서 model의 목적은 input d..
-
숫자의 표현python algorithm 2024. 2. 22. 21:28
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 [문제] 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요. [풀이] def solution(n): answer = 1 for i in range(1, n//2 + 1): total = 0 while total < n: total += i if total == n: answer += 1 break else: i +=..
-
짝지어 제거하기python algorithm 2024. 2. 19. 20:14
2017 팁스타운 [문제 설명] 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. [제한사항] 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문..