본문 바로가기

기술블로그334

Udemy - Javascript - 재귀 문제풀이 Udemy - Javascript - 재귀 문제풀이 Power() 거듭제곱을 재귀로 만든다 function power(num1, num2) { if (num2 === 0) return 1; return num1 * power(num1, num2 - 1) } num2 가 0이면 1을 반환한다 예) 2 ^ 0 = 1 / 4 ^ 0 = 1 num2가 0이 될때까지 return num1 * power(num1, num2 - 1)를 call stack에 넣어준다 num2가 0이 되면 if (num2 === 0) return 1;을 통해 1을 반환한다 call stack에 넣어둔 만큼 num1을 power(num1, num2 - 1)과 곱하면 결과값이 나온다 Factorial() 팩토리얼을 계산 하는 것이다 주어진.. 2023. 1. 11.
Udemy : Python 출력과 함수 Udemy : Python 출력과 함수 Functions with Output def my_function() : result = 3 * 2 return result my_function() # result가 출력된다 output = my_function() # result가 output으로 저장된다 함수를 정의하고, 함수를 사용할 때에 출력하는 값이 나오도록 만들고 싶을 때에 return을 사용한다 실습 1 년도와 달을 입력 받는다 년도가 윤년인지 확인하고, 해당 연도의 달에 날 수를 출력한다 def is_leap(year): if year % 4 == 0: if year % 100 == 0: if year % 400 == 0: return True else: return False else: retu.. 2023. 1. 11.
인공지능 - 뇌와 신경망 모델 인공지능 - 뇌와 신경망 모델 K-MOOC 인공지능 만들기 뇌와 컴퓨터 1943년 McCulloch & Pitts 는 사람 뇌의 신경세포들이 논리회로의 AND OR NOT 게이트 연산을 수행할 수 있다고 했다 즉 컴퓨터가 뇌처럼 계산하고 문제를 해결할 수 있다고 생각하기 시작했다 컴퓨터 빠르고 상당히 정확하다 (논리소자) 디지털 회로망 (전자 회로망) / 주소기반 메모리 (국지적 / 독립적) 어느 파일에서 어떤 것이 저장이 되어 있는지 꺼내서 사용을 한다 논리 / 산술적 연산 (조작적) 기호로 symbol을 정해 표현을 한 다음, 그것을 조작하여 추론을 한다 중앙집중식 순차 처리 프로그래밍기반 명시적 지식 지식을 넣을 수는 있지만, 학습을 못 하는 것이 단점이다 뇌 부정확하고 속도도 느리다 (신경세포) .. 2023. 1. 11.
Udemy - Javascript - 재귀 Udemy - Javascript - 재귀 재귀 (Recursion) 재귀는 자기 자신을 부르는 과정, (Javascript 같은 경우 함수) 이다 함수가 함수를 부르는 것이다 재귀 함수는 많은 곳에서 쓰인다 JSON.parse / JSON.stringify document.getElementById 그리고 DOM 등 많은 div가 있는데, 그것을 찾기 위해 재귀 함수를 사용할 수도 있다 더 복잡한 자료구조를 해결할 때 유용할 수 있다 iteration보다 더 깔끔할 대체자가 될 수 있다 스택 호출하기 Call Stack 스택 자료 구조다 (스택은 LIFO - Last In First Out) 함수가 적용될 때마다 Call Stack 위에 쌓이게 된다 (PUSH) 그리고 JavaScript가 return.. 2023. 1. 10.
Udemy : Python 딕셔너리 Udemy : Python 딕셔너리 딕셔너리 name = { "Alex" : 2; "Lisa" : 1; "Joon" : 1; } "Alex", "Lisa", "Joon" 은 key 2, 1, 1은 value들이다. 즉 key의 값들이다 딕셔너리는 key를 통해서 값을 가지고 올 수 있다 name["Alex"] 는 2로 출력된다 name = { "Alex" : 2, "Lisa" : 1, "Joon" : 1, } print(name["Alex"]) # 2 name["Yang"] = 5 print(name) # { # "Alex" : 2, # "Lisa" : 1, # "Joon" : 1, # "Yang" : 5, # } # Yang이 key로, 5가 Yang의 값으로 추가가 되었다 name["Joon"] = .. 2023. 1. 10.
인공지능 - 지식 표현 인공지능 - 지식 표현 K-MOOC 인공지능 만들기 상식적 지식 기계가 인간들의 일반 상식을 가지게 할 수 있는지가, 아직 풀리지 않은 숙제이다 인간들에게는 너무나도 당연한 것은 기계들을 추론을 못 할 수 있다 예) 컵이 떨어지면, 컵이 깨진다는 인간들에게는 너무 당연한 것이다. 하지만 로봇은 아직 컵이 떨어지면, 컵이 깨진다는 추론을 못 할 수도 있다 지식 표현의 세 가지 방법 Semantic Network (의미망) 인공지능에서 지식 표현을 위한 그래프 구조 노드와 링크로 구성된 그래프 구조다 위 같은 경우 Jerry가 동물이란 것을 알기 위해, Jerry는 고양이라는 노드로 옮기고, 고양이는 mammal이라는 노드로 옮기고, 그리고 mammal은 동물이다 라는 노드까지 가야, Jerry가 동물이다 .. 2023. 1. 10.
[Python] 백준 6068 시간 관리하기 🧑‍💻 [Python] 백준 6068 시간 관리하기 Gold 5 - 정렬 하루는 0 시간부터 시작한다 농부가 주어진 일을 끝내기 위해, 얼마나 더 잘 수 있는지 시간을 구하는 것이다 하루를 시작하는 시간을 구하는 것이기 때문에, 시작하는 시간 기준으로 문제를 해결하면 된다 문제 풀이 입력을 받을 때, 일을 끝내기 위해 필요한 시간과, 일을 끝내야 하는 시간이 주어진다 여기서 일을 끝내야 하는 시간 기준으로 오름차순으로 정렬을 한다 hour 같은 경우, 하루를 시작하는 기준이 0 이니깐, 0부터 시작을 한다 while문을 통해, 일을 끝내야 하는 시간 안에 모든 일들을 할 수 있으면 1씩 더해준다 time에 일을 끝내기 위해 필요한 시간을 계속 더해준다 만약 여기서 time 이 일을 끝내야 하는 시간보다 .. 2023. 1. 9.
[Python] 백준 1946 신입 사원 🧑‍💻 [Python] 백준 1946 신입 사원 Silver 1 - 정렬 서류 성적과 면접 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않으면 선발을 한다 즉 서류 성적, 면접 성적 모두, 다른 지원자보다 낮으면 떨어지는 것이다 문제 풀이 먼저 서류 성적 기준으로 정렬을 한다 그리고 면접 성적들을 비교를 한다 제일 처음 기준을 서류 면접에서 1등 한 사람 기준으로 간다 서류 면접 1등 사람 기준(A)으로 면접 성적이 더 우수하다면, 그 사람도 (B) 신입 사원으로 뽑힐 수 있다 그 다음부터는 B의 면접 성적 기준으로 비교를 한다. (이렇게 계속 면접 성적 기준을 바꿔주면서 비교를 하며 뽑힐 수 있는 신입 사원의 수를 구한다) 정렬한 기준, 제일 앞에 있는 사람은 무조건 신입사원으로 뽑힌다. 서류가 1.. 2023. 1. 9.
Udemy : Python 매개변수와 Caesar Code Udemy : Python 매개변수와 Caesar Code 입력값을 받는 함수를 알게 될 것 Arguments 와 Parameters의 차이 입력 값이 있는 함수 # 그 전에 배웠던 함수 def greet(): print("Hello") print("Alex") greet() # 괄호에 아무것도 안 넣었다 def greet_with_name(name): print("Hello") print(name) greet_with_name('Alex') # greet_with_name() 안에 입력값을 넣어야 함수가 실행이 된다 # 그 입력값은 하나의 변수의 역할을 한다 # 괄호 안에 아무것도 없으면 argument가 없다고 에러 메세지가 뜬다 # TypeError: greet_with_name() missing .. 2023. 1. 9.