Day2
Variable
Variable & Memory
변수란?
변수 = 값
변수는 메모리 주소를 가지고 있고 변수에 들어가는 값은 주소에 해당됨
ex) A = 8 : A라는 이름을 가진 메모리주소에 8을 저장해라
변수 = 값
변수는 메모리 주소를 가지고 있고 변수에 들어가는 값은 주소에 해당됨
ex) A = 8 : A라는 이름을 가진 메모리주소에 8을 저장해라
부스트 캠프의 첫날이 시작되었다.
첫날이라 앞으로의 계획이나 개발환경 setting이 주를 이룬 수업이였다.
오늘이 아마 일정이 널럴한 마지막날이 될것같다ㅎㅎ😵😵😵
문제의 입력조건이 작아 모든걸 탐색하는 brute force 알고리즘을 사용할수있음을 추측할수있다.
일단 M개의 치킨집에 대한 모든 조합을 구해 list에 담은뒤에
해당리스트를 순회하며 해당 치킨집들이 선택되었을때 도시의 치킨거리를 구하여 answer배열에 담아준다
이후 answer배열중 min값을 택하여 출력해준다.
위두가지를 잘 사용
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
간단한 문제이다.
count 함수를 활용하였다.
알파벳의 갯수를 새준다음 이들이 연속된 갯수인지를 check해주기 위해 count()의 start,end를 정해주어 이들이 같으면 연속된것이고, 만약 다르다면 뒤에 같은 알파벳이 더 나온다는 뜻이므로 반복문을 break해주고 bool 값을 false로 바꾸어주어 그룹단어가 아님을 나타내준다.
만약 조건 check를 통과하였다면 index를 연속된 알파벳 이후로 바꾸어주어 반복문을 계속한다.
간단한 문자열 문제이다.
입력으로 주어진 단어의 크로아티아 알파벳 갯수를 출력한다.
일단 크로아티아 알파벳의 정보를 담고있는 dictionary를 만들어 줘보자.
이후 특별히 긴 알파벳의 시작을 보면 c,d,l,n,s,z일때만 1자리 뒤에까지 check해주고 dz일때는 3번째까지 check해준다.
구현을 완료했지만 시간 복잡도가 높아 시간초과가 나온다.
reverse와 pop의 시간복잡도가 O(n)이므로 pop때문에 이러한 문제가 발생하는것 같다.
따라서 pop을 deque를 사용하여 popleft로 시간복잡도를 O(1)로 낮추지만 시간초과는 해결되지 않았다.
Introduction and Motivation
Machine learning의 목적은 data로 부터 valuable patterns을 뽑아내는 것이다
Dataset에 맞게 Model을 설계, Model은 input과 output의 function을 describe 할 수 있어야 한다
A model is said to learn from data if its performance on a given task improves after the data is taken into account.
Learning이란 data의 pattern이나 struct를 model의 parameter을 자동으로 optimize하며 찾아낸다.
머신러닝 시스템의 근본적인 이해를 위해 수학적인 기반은 매우 중요하다
Linear algebra는 이러한 비슷함에 초점을 둔다.