본문 바로가기

취준생341

[Python] 백준 1202 보석 도둑 🧑‍💻 백준 1202 보석 도둑 Gold 2 - 정렬, heapq 각 보석들의 무게와 가치가 주어지면서, 각 가방에 들어갈 수 있는 보석의 최대 무게가 주어진다 각 가방에는 보석 하나 밖에 못 들어간다 즉, 가방에 들어갈 수 있는 보석들 중, 최대의 보석 가치를 가방에 넣는 것이다 문제 풀이 가방에 들어갈 수 있는 보석들 중, 최대의 보석 가치를 가방에 넣는 것 즉 보석들을 각 보석들의 무게 위주로 오름차순으로 정렬을 한다 그리고 가방에 들어갈 수 있는 보석들을 구한다 그 가방에 들어갈 수 있는 보석들 중, 제일 가치가 높은 보석을 가방에 넣으면 된다 heapq 힙은 이진 트리를 사용하면서 우선순위 큐를 구해준다. O(logN) 코드 결과 코드 import heapq N, K = map(int, inpu.. 2023. 1. 6.
3_Javascript - 문제 해결 접근법 Udemy - Javascript 문제 해결 접근법 알고리즘이란? 특정한 작업을 끝내기 위한 과정 또는 단계다 알고리즘 풀이를 더 잘 하기 문제를 해결하기 위해 계획을 짜는 것 일반적인 문제 해결 패턴을 파악하는 것 문제 해결 문제의 이해 코드를 직접 치기 전에, 문제를 이해하는 것이 중요하다 문제를 내가 이해할 수 있도록 정리를 한다 문제에 어떤 입력값이 들어가는가? 내가 짠 코드를 통해 어떤 결과가 나오는지 생각한다 입력값이 있으면, 결과가 잘 나오는가? 데이터를 어떻게 표시할 것인가? 구체적 예제들 쉬운 예제들을 먼저 써놓은다 그리고 그보다 더 어려운 예제들로 진행한다 입력값이 없는 상태에서도 어떻게 결과나 나오는지 생각해본다 유효하지 않은 입력값을 넣어본다 세부 분석 문제에 대한 단계들을 실제로 .. 2023. 1. 5.
2_Javascript - 객체와 배열의 빅오 Udemy - Javascript 객체의 빅오 let instructor = { firstName : "Kelly", isInstructor: true, favoriteNumbers: [1,2,3,4], } Key와 Value가 있다 객체를 사용할 때 정렬이 필요하지 않을 때 데이터를 빠르게 접근을 하거나, 추가를 하거나, 삭제를 할 때 객체의 빅오 추가하기 (Insertion) : O(1) 삭제하기 (Removal) : O(1) 찾기 (Searching) : O(N) Value를 찾는 것 데이터에 접근하기 (Access) : O(1) 객체의 메서드 (Object Methods) object.keys : O(N) object.values : O(N) object.entries : O(N) hasOwnPr.. 2023. 1. 5.
Udemy : Python 모듈 / 리스트 Udemy : Python 모듈 / 리스트 Module, 모듈이란? 차를 생성할 때, 한 사람이 차 한대를 혼자 만들지 않는다 각 사람들이 부품 별로, 차의 부품들을 생성을 해서, 하나의 차를 만든다 이처럼, 개발을 할 때에, 한 프로젝트의 Module, 모듈은 차의 부품이라고 생각하면 된다 Module의 사전적 의미는, 소프트웨어 묘듈 프로그램의 기능을 독립적인 부품으로 분리한 것이 모듈이라고 한다 Random 모듈 사용하기 무작위로 동전의 앞면, 또는 뒷면을 출력하기 import random coin = ["Heads", "Tails"] print(random.choice(coin)) import random 을 통해서 random이라는 모듈을 가지고 온다 그 외에 무작위로 숫자 뽑기 import r.. 2023. 1. 5.
인공지능 - 논리, 사고, 지식 인공지능 - 논리, 사고, 지식 K-MOOC 인공지능 만들기 사고, 논리, 지식 인공지능이 인간의 사고 과정을 모사하는 방법 기호 논리를 이용하여 현실 세계를 모델링 한다 문제와 전제를 기술하는 것 논리 규칙을 적용한다. 문제를 추론하고, 결론을 만들어낸다 예시) 위에 상자들이 놓여 있다 이것을 인공지능은 논리 언어로 정리를 한다 세계 1 같은 경우 순서대로 B 상자 위에 비어 있다 (Clear) B는 A 위에 쌓여있다 (On) C 상자 위에는 아무것도 없다 (Clear) A 상자는 땅 위에 있다 (Floor) / C 상자는 땅 위에 있다 (Floor) 이처럼, 논리식으로 인공지능은 현실 세계를 표상(representation)한다 이러한 논리식을 가지고, 상자들의 움직이는 과정을 추론하고 생각할 수 있.. 2023. 1. 5.
[Python] 백준 1253 - 좋다 🧑‍💻 백준 1253 - 좋다 Gold 4 - 정렬 리스트 안에 있는 어떤 수를, 리스트 안에 있는 두 수의 합으로 나타낼 수 있는 수의 개수를 구하는 것이다 여기서 놓치지 말아야 할 것은, 숫자의 값이 같아도 위치가 다르면 다른 숫자로 간주한다 예시) 원래 그냥 리스트를 정렬을 한 후, 투 포인터를 이용해서 더해서, 더한 숫자가 리스트에 있는지 확인만 하면 되는 줄 알았다 그렇게 되면, 다른 위치에 있어도, 같은 값의 숫자가 카운팅이 잘 안 될 수 있다 그래서 숫자 하나하나 씩 빼고, 그 외의 숫자들을 투 포인터를 사용해서 그 뺐던 숫자와 일치하는지 더해주면 된다 문제 풀이 위 각 변수들의 설명 i : for문을 통해서 정렬된 리스트에 있는 값들을 가지고 온다 (range를 가지고 오면 됨) temp .. 2023. 1. 5.
1_Javascript - Big O Notation Udemy - Javascript Big O Notation 다양한 코드가 있으면, 코드의 성능을 보여주는 것 데이터가 더 많아질 수록, 코드의 성능이 매우 중요해진다 성능이 좋은 코드? addUpTo 예시) n 이 주어지면 1부터 n까지의 합을 구하는 것4 for문을 사용하기 function addUpTo (n) { let total = 0; for (let i = 1; i 2023. 1. 4.
Udemy : Python 흐름 제어와 논리 연산자 Udemy : Python 흐름 제어와 논리 연산자 if문 elif문 else문 등 이미 다 배운 내용이지만, 다시 복습 할 수 있어서 좋았다. 다시 복습을 하며, 간단한 선택형 게임도 만들면서, 재미있게 수업을 들었다. 짝수 또는 홀수 구하기 number = int(input("Which number do you want to check? ")) if number % 2 == 0: print("This is an even number.") else: print("This is an odd number.") 입력값을 정수로 받고, 2를 나눠준다 여기서 % 는 숫자를 나누고, 나오는 나머지를 구해준다 BMI를 사용해서, 몸 상태를 출력하기 (elif) height = float(input("enter yo.. 2023. 1. 4.
인공지능 - 연구 분야 인공지능 - 연구 분야 K-MOOC 인공지능 만들기 인공지능 연구 분야 기능적 분류 지각 (Perception) 환경을 지각하는 능력 인지 (Cognition) 문제에 대해 생각하는 인지 능력 행동 (Action) 문제를 해결하기 위해 행동으로 옮겨 의사결정을 하는 것 과정적 분류 학습 (Learning) 데이터를 가지고 어떻게 학습을 하는가? 추론 (Reasoning), 표상 (Representation) 학습한 데이터를 가지고 어떻게 추론을 해서 문제를 풀 것인가? 탐색 (Search) 다양하고 새로운 문제를 풀면서, 어떤 해결책이 더 좋은지 탐색을 한다 계획 (Planning) 어떻게 탐색해서 목표에 달성할 것인지 계획을 한다 양상적 분류 주변을 이해하기 위해서 시각 (Vision) 능력을 가져야 .. 2023. 1. 4.