본문 바로가기

파이썬141

[Python] 백준 1374 - 강의실 🧑‍💻 [Python] 백준 1374 - 강의실 Gold 5 - 정렬, Heap 최대한 적은 수의 강의실을 사용하여, 모든 강의를 진행해야 한다 문제풀이 시간 초과 강의 시간들을 강의 시작 시간 기준으로 오름차순으로 정렬했다 그리고 강의가 끝나는 시간 기준으로 다시 오름차순으로 정렬을 했다 그리고 while문을 돌면서, 강의들을 뺐다 여기서 하고 싶었던 것은 강의실 당 들어가는 강의 시간들을 구하는 것이었다 그렇게 되면 한 강의실에 대한 스케줄이 나오고, 강의 시간이 아직도 남아있으면, 다시 while문을 반복해야 한다 반복하는 것을 강의 시간이 아예 없을 때까지 진행을 하는 것이다 Heap으로 풀기 위에는 한 강의실에 대한 스케줄을 강의 시간이 다 없어질 때까지 짜는 것이었다 Heap으로 풀게 되면 강.. 2023. 1. 14.
Udemy : Python 커피 머신 프로젝트 Udemy : Python 커피 머신 프로젝트 3개 종류의 커피들이 주어진다 필요한 재료와 금액이 주어진다 유저는 어떤 커피를 마실지, 그리고 동전 얼마를 넣을지 입력을 한다 입력에 따라, 재료가 부족하든지, 금액이 부족하든지, if문을 넣었다 여기서 제일 집중했던 것은 함수를 만드는 것이었다 is_sufficient : 안에 재료가 적당히 있는지 확인하는 함수 make_coffee: is_sufficient가 True를 반환하면, 커피를 만드는 함수이다 money_change: 금액을 계산하는 함수이다 함수를 사용해서, 2개 이상의 변수를 반환했다 튜블로 반환이 되어서, 인덱스를 통해, 내가 원하는 데이터를 활용했다 MENU = { "espresso": { "ingredients": { "water":.. 2023. 1. 14.
[Python] 백준 1931 - 회의실 배정 🧑‍💻 백준 1931 - 회의실 배정 Silver 1 - 정렬 회의실 한 개가 있다 입력값으로 회의 시작 시간과, 회의 끝나는 시간이 주어진다 시작 시간과, 끝나는 시간은 같을 수 있지만, 회의끼리 겹치면 안 된다 즉 시작하는 시간 순으로 먼저 정렬을 한 후, 또 한번 회의가 끝나는 순서로 정렬을 하면 된다 제일 중요한 것은 회의가 일찍 끝날수록, 더 많은 회의를 회의실에서 할 수 있다 문제 풀이 회의가 시작하는 시간 기준으로 정렬을 한다 그리고 회의가 끝나는 시간 기준으로 정렬을 한다 결과적으로 회의가 끝나는 시간 기준으로 정렬이 되어 있다 정렬된 회의 중 첫 회의는 무조건 진행을 한다 for문을 돌면서 전 회의의 끝나는 시간과 현재 회의의 시작 시간이 같거나 더 클 때에, meeting_now 를 갱.. 2023. 1. 13.
Udemy : Python 디버깅 Udemy : Python 디버깅 머리 속으로 문제 그려보기 def my_function(): for i in range(1, 20): if i == 20: print("You got it") my_function() 위에 코드는 작동은 하지만 "You got it"을 출력을 안 한다 왜냐하면 range(1, 20) 특성상 1이상 20미만의 수들을 구한다 즉 1부터 19까지만 구하는 것 따라서 "You got it"을 출력하기 위해서는 range(1, 21)로 바꿔야 한다 버그 재현하기 from random import randint dice_imgs = ["❶", "❷", "❸", "❹", "❺", "❻"] dice_num = randint(1, 6) print(dice_imgs[dice_num]) #.. 2023. 1. 13.
Python 유효 범위 (로컬 범위, 글로벌 범위) Udemy : Python 유효 범위 (로컬 범위, 글로벌 범위) Scope enemies = 1 def increase_enemies(): enemies = 2 print(f"enemies inside function: {enemies}") increase_enemies() print(f"enemies inside function: {enemies}") # output 1 : enemies inside function: 2 # output 2 : enemies inside function: 1 output 1 함수에서 가지고 온 enemies output 2 함수 밖에 있는 enemies=1을 가지고 왔다 Local Scope (로컬 범위) 로컬 범위는, 함수 안에 있는 것이다 변수를 함수 안에 넣게 .. 2023. 1. 13.
Udemy : Python 블랙잭 프로젝트 Udemy : Python 블랙잭 프로젝트 카드를 뽑아서, 카드의 숫자들을 더해서 21 이하로 맞추는 것이다 21 이상이고, 상대방이 21 이하이면, 무조건 지는 것이다 상대방과 비교해서, 둘 다 21 이하일 때, 21과 제일 가까운 숫자가 이기는 것이다 J, Q, K = 10 A = 1 또는 11 2~10은 각자 주어진 번호 첫 카드는 공개이다 공개를 했는데, 17 이하이면, 무조건 추가 카드를 받아야 한다 import random from replit import clear from art import logo def deal_card(): """returns random card from the deck""" cards = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 1.. 2023. 1. 12.
[Python] 백준 2437 저울 🧑‍💻 백준 2437 저울 Gold 2 주어진 저울 추의 무게들을 오름차순으로 정렬을 한다 그 저울 추들을 가지고 1부터 몇 번까지 무게를 측정할 수 있는지 구하는 것이다 예를 들어 주어진 저울 추들로 1부터 20까지 무게를 측정할 수 있다. 그러면 답은 21이다. (21부터는 무게를 측정하기 어려우니깐) 문제 풀이 먼저 주어진 리스트를 오름차순으로 정렬을 한다 target을 주어야 하는데, target은 1부터 시작한다. 위에 예시처럼 1부터 20까지 무게를 측정할 수 있지만, 21부터는 측정하기 어려우니 20 + 1을 해야 해서 target을 1로 저장을 한다 그리고 weight리스트를 순회를 한다 여기서 target보다 순회하는 저울추가 더 크면 for문을 끝낸다 target보다 순회하는 저울추가 .. 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.
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.