컴퓨터(10)
-
[BOJ_2805 | Binrary Search] 나무 자르기
풀이 이분 탐색을 통해 문제를 해결하면 주어진 시간 안에 문제를 해결하는 알고리즘을 구현할 수 있다.먼저 주어진 나무들의 길이를 배열에 저장하고 Arrays.sort를 통해 빠르게 길이순으로 정렬한다.이분탐색의 탐색범위는 0부터 길이가 가장 긴 나무의 길이까지이며(left = 0, right = arr[arr.length-])mid 는 0부터 시작해 반복문의 매번 마지막에는 (left+right)/2 로 재설정해준다.각각의 반복문이 돌아갈 때마다또 다른 반복문을 통해 mid의 길이에 따른 잘린 나무들의 길이의 합을 구해준다.이 길이가 m과 같으면 mid의 값을 출력하고, 아닌 경우 각각 mid의 값을 갱신하여 반복문을 돌게 한다. 하지만 한 가지 주의해야 할 점이 있는데문제의 조건을 잘 살펴보면, 높이가..
2019.02.05 -
MachineLearning - The Problem of OverFitting
Machine Learning - The Problem of OverFitting 지금까지 Machine Learning을 학습하면서 배운 알고리즘들을 간단하게 복습해보자.우선, 기계학습이라는 것은 컴퓨터에게 무엇을 어떻게 하라고 명확하게 지시하지 않은 상태에서 데이터와 결과 Set을 제공하면, 컴퓨터가 그에 따른 분석모델을 적용해서 가설 함수를 세우고, 새로운 데이터가 제공되었을 때 가설 함수를 바탕으로 결과를 예측하여 출력하는 것을 의미한다. 이 가설 함수는 데이터와 결과 Set이 제공될 때마다 전체 오차가 적어지는 방향으로 정확성을 높여간다. 데이터와 결과 Set을 분석하는 방법은 학습한 바로는 크게 두 가지가 있었다.Linear Regression 모델과 Classification 모델이었다. L..
2019.02.03 -
Linear Regression with Octave
* 업로드한 사진의 모든 저작권은 COURSERA에 있음을 미리 밝힙니다 이번 시간에는 Week1, Week2 를 마치고 그동안 배웠던 내용들을 Octave 코드로 표현하여 프로그램을 실행하는 과제를 수행하였다.과제에서 Octave Programming을 통해서 제출해야 하는 내용은 다음과 같다. %% Machine Learning Online Class - Exercise 1: Linear Regression % Instructions% ------------%% This file contains code that helps you get started on the% linear exercise. You will need to complete the following functions% in this ..
2019.01.31 -
[BOJ_11562 | Floyd]백양로 브레이크
풀이 플로이드 와샬 알고리즘을 응용해야 하는 쉽지만은 않은 문제였던것 같다.숫자에 의미를 부여하여 그래프를 구성해야 하고, 이 의미를 부여하여 그래프를 완성하는 과정 자체가생각해내기 쉽지는 않았다. 문제 해결을 위한 생각의 과정은 다음과 같다.예를 들어 1 2 0 이라는 input이 주어지면 1에서 2로 가는 경로를 dis[1][2] 배열에 생성한다. 즉, 0이라는 값을 배열에 넣어준다는 것이다. 그리고 여기서 중요한 것이 2에서 1로 가는 경로가 없지만, 1에서 2로 가는 경로가 있기 때문에양방향의 경로가 연결될 가능성이 있으므로, 1이라는 값을 dis[2][1]에 넣어준다. 다시말해서, 이미 단방향이든, 양방향이든 경로가 있으면 거기에는 도로를 추가할 일이 없으므로 0을 넣어주고단방향의 경로가 없지만..
2019.01.22