본문 바로가기

Python144

[Python] 백준 1202 보석 도둑 🧑‍💻 백준 1202 보석 도둑 Gold 2 - 정렬, heapq 각 보석들의 무게와 가치가 주어지면서, 각 가방에 들어갈 수 있는 보석의 최대 무게가 주어진다 각 가방에는 보석 하나 밖에 못 들어간다 즉, 가방에 들어갈 수 있는 보석들 중, 최대의 보석 가치를 가방에 넣는 것이다 문제 풀이 가방에 들어갈 수 있는 보석들 중, 최대의 보석 가치를 가방에 넣는 것 즉 보석들을 각 보석들의 무게 위주로 오름차순으로 정렬을 한다 그리고 가방에 들어갈 수 있는 보석들을 구한다 그 가방에 들어갈 수 있는 보석들 중, 제일 가치가 높은 보석을 가방에 넣으면 된다 heapq 힙은 이진 트리를 사용하면서 우선순위 큐를 구해준다. O(logN) 코드 결과 코드 import heapq N, K = map(int, inpu.. 2023. 1. 6.
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.
[Python] 백준 1253 - 좋다 🧑‍💻 백준 1253 - 좋다 Gold 4 - 정렬 리스트 안에 있는 어떤 수를, 리스트 안에 있는 두 수의 합으로 나타낼 수 있는 수의 개수를 구하는 것이다 여기서 놓치지 말아야 할 것은, 숫자의 값이 같아도 위치가 다르면 다른 숫자로 간주한다 예시) 원래 그냥 리스트를 정렬을 한 후, 투 포인터를 이용해서 더해서, 더한 숫자가 리스트에 있는지 확인만 하면 되는 줄 알았다 그렇게 되면, 다른 위치에 있어도, 같은 값의 숫자가 카운팅이 잘 안 될 수 있다 그래서 숫자 하나하나 씩 빼고, 그 외의 숫자들을 투 포인터를 사용해서 그 뺐던 숫자와 일치하는지 더해주면 된다 문제 풀이 위 각 변수들의 설명 i : for문을 통해서 정렬된 리스트에 있는 값들을 가지고 온다 (range를 가지고 오면 됨) temp .. 2023. 1. 5.
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.
[Python] 백준 11497 - 통나무 건너뛰기 🧑‍💻 백준 11497 - 통나무 건너뛰기 Silver 1 - 정렬 인접한 통나무 높이의 차를 최소화 하는 문제다 여기서 제일 중요한 것은 통나무를 원형으로 세워 놓는 것이라서, 제일 앞과 제일 뒤에 있는 숫자도 높이의 차에 포함을 해야 한다 즉 단순히 정렬을 하게 된다면, 제일 앞에 있는 숫자와 제일 뒤에 있는 숫자의 차가 제일 커서, 답을 구할 수 없다 예시) 문제 풀이 먼저 정렬을 해야 하긴 한다 (오름차순으로 정렬을 했다) For문을 순회할 때 Index가 짝수 일 때 현재 index에서 빼기를 한다 index를 빼는 것은 0으로 시작해서, 뺄 때마다 -1 씩 누적을 시킨다 For문을 순회할 때 Index가 홀수 일 때 현재 index에서 같이 빼기를 한다 index를 빼는 것은 -2로 시작해서,.. 2023. 1. 4.
[Python] 백준 2108 - 통계학 🧑‍💻 백준 2108 - 통계학 Silver 3 - 정렬 산술과 딕셔너리를 주로 사용하면 쉽게 풀 수 있는 문제다 문제에서 구하라는 산술평균, 중앙값, 최빈값, 범위를 구하면 된다 산술평균은, 주어진 값들을 전부 더하고, 더한 값에서 주어신 숫자들의 수로 나누면 된다 중앙값은, 주어진 숫자들 중 중앙에 배치된 숫자를 구한다 (오름차순으로 정렬을 해야 한다) 최빈값은 중복 숫자가 제일 많은 숫자를 구한다. 만약에 2개 이상이 나오면, 중복 숫자가 많은 숫자들 중 2번째로 작은 숫자를 구한다 범위는 숫자들 중 최댓값과 최솟값의 차이를 구한다 예시) 문제 풀이 N이라는 숫자들의 개수를 준다 산술평균 숫자들을 sum을 이용해서 더해주고, N으로 나눈다 중앙값 오름차순으로 숫자들을 정렬하고, N을 2로 나눈다 그.. 2023. 1. 3.
Udemy : Python 계산, 반올림 Udemy : Python 계산, 반올림 Calculation + # 더하기 - # 빼기 * # 곱하기 ** # 제곱 / # 나누기 // # 나눈 후 몫 계산 % # 나눈 후 나머지 Rounding numbers (반올림) print(round(8 / 3)) # 3 print(round(8/3, 2)) print(round(2.666666666, 2)) # 2.67 print("{:.2f}".format(33.599999)) # 원래 round를 쓰면 33.6이 나온다 # 위를 쓰게 되면 33.60이 나온다 (소수 2자리 수까지 반환하는 것) f-string 사용하기 # f 를 문자열 앞에다가 쓰고 난 후, 문자열 외에 다른 종류 (정수 같이)를 써야 한다면 {} 안에 넣는다 name = "제준" age.. 2023. 1. 3.
Udemy : Python 개발 완전 정복 Udemy : Python 개발 완전 정복 #1. Create a greeting for your program. #2. Ask the user for the city that they grew up in. #3. Ask the user for the name of a pet. #4. Combine the name of their city and pet and show them their band name. #5. Make sure the input cursor shows on a new line: print("Welcome to Band Name Generator") city = input("Which city did you grow up in?\n") pet = input("What is the na.. 2023. 1. 2.
[Python] 백준 1744 - 수 묶기 🧑‍💻 백준 1744 - 수 묶기 GOLD 4 주어진 숫자들을 더해서 제일 큰 수를 만드는 것 숫자들을 2개씩 묶어서 곱할 수 있다 즉 큰 숫자들끼리 묶어서 곱하면, 합을 최대로 만들 수 있다 문제 풀이 주어진 숫자들을 리스트에 넣을 때에, 양수 리스트와 음수 리스트에 따로따로 넣는다 즉 리스트가 2개다. 여기서 0 은 음수 리스트에 넣는다 양수 리스트는 내림차순으로 / 음수 리스트는 오른차순으로 정렬을 한다 deque를 사용한다 이유는 제일 앞에 있는 숫자들을 pop을 해야하는데, pop은 리스트에 있는 제일 마지막 숫자를 꺼낸다 첫번째 숫자를 빠른 속도록 꺼내기 위해서 popleft를 사용해야하는데, deque를 적용해야 사용할 수 있음 while문을 통해 양수 리스트와 음수 리스트에 있는 숫자 꺼내.. 2023. 1. 1.