Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

Nonamed Develog

[TIL] AI 웹 개발 7기 사전 캠프 2-1 본문

WHAT I LEARN/TIL

[TIL] AI 웹 개발 7기 사전 캠프 2-1

노네임드개발자 2024. 5. 27. 18:59

일일 알고리즘 코드카타 풀어보기

Q. 각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요.

제한 사항)0 < angle ≤ 100angle은 정수 입니다.

 

입출력 예)

angle result
70 1
91 3
180 4

 

def solution(angle):
    if 0 < angle < 90:
        answer = 1
    elif angle == 90:
        answer = 2
    elif 90 < angle < 180:
        answer = 3
    else angle == 180:
        answer = 4
    return answer

1. error

2. 각 조건문 별로 실행했을 때는 결과가 하나씩 잘 나왔다.(한꺼번에는 왜 안되지?)

def solution(angle):
    if 0 < angle < 90:
        answer = 1
    elif angle == 90:
        answer = 2
    elif 90 < angle < 180:
        answer = 3
    else:
        answer = 4
    return answer

조건문에서 else는 if, else의 조건이 아닌 것을 말하는 것이라 굳이 조건을 달지 않아도 된다.(제한 사항이 180까지라 가능)

def solution(angle):
    if 0 < angle < 90:
        answer = 1
    elif angle == 90:
        answer = 2
    elif 90 < angle < 180:
        answer = 3
    elif angle == 180:
        answer = 4
    return answer

마지막 조건까지 달고 싶으면 elif를 끝까지 써주면 된다.(else로 끝내지 않아도 됨)(제한사항이 없다면 elif를 끝까지 사용)

def solution(angle):
    if angle<=90:
        return 1 if angle<90 else 2
    else:
        return 3 if angle<180 else 4
def solution(angle):
    if angle < 90:
        answer = 1
    elif angle == 90:
        answer = 2
    elif angle > 90 and angle < 180:
        answer = 3
    else:
        answer = 4
    return answer

다른 답을 확인해 봤는데 위의 제한 사항을 잘 이용한 것으로 보인다. (문제를 더 똑똑하게 들여다 보자)

def solution(angle):
    answer = (angle // 90) * 2 + (angle % 90 > 0) * 1
    return answer

이해는 안되지만 이런 답도 있다.

 

Q. 정수 num1과 num2가 주어질 때, num1과 num2의 합을 return하도록 soltuion 함수를 완성해주세요.

def solution(num1, num2):
    answer = num1 + num2
    return answer

 

Q. 정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요.

def solution(num1, num2):
    answer = int((num1 / num2) * 1000)
    return answer

정수를 만들 때는 int()를 사용한다.


[Python 과제]Lv2. 스파르타 자판기

파이썬 코드를 이용해 자판기를 만들어 봅시다.

 

1. 사용자가 볼 수 있게 메뉴를 표시합니다.

  • 다음과 같은 음료를 실행창에 표시합니다.
    • 사이다 1,700원
    • 콜라 1,900원
    • 식혜 2,500원
    • 솔의눈 3,000원
beverages = [
    {'name':'사이다','price':1700},
    {'name':'콜라,','price':1900},
    {'name':'식혜','price':2500},
    {'name':'솔의눈','price':3000},
]

먼저 리스트에 딕셔너리를 작성해보자. (키+밸류를 정리할 때는 딕셔너리를 이용한다.)

beverages = [
    {'name': '사이다','price': 1700},
    {'name': '콜라,','price': 1900},
    {'name': '식혜','price': 2500},
    {'name': '솔의눈','price': 3000},
]

for beverage in beverages
    name = beverage['name']
    price = beverage['price']
    print(name, price)

error..

beverages = [
    {'name': '사이다','price': 1700},
    {'name': '콜라','price': 1900},
    {'name': '식혜','price': 2500},
    {'name': '솔의눈','price': 3000},
]

for beverage in beverages:
    name = beverage['name']
    price = beverage['price']
    print(name, price)

:(따옴표) 하나 때문에 30분 잡아먹음...

#

사이다 1700
콜라 1900
식혜 2500
솔의눈 3000

 

힌트를 확인해보자.

 

힌트1) 딕셔너리 자료형을 사용해서 음료 정보를 담아보세요.

beverages = {
"사이다": 1700,
"콜라": 1900,
"식혜": 2500,
"솔의눈": 3000
}

힌트 2) 딕셔너리의 items 와 for 문을 조합해서 사용해보세요.

for key, value in beverages.items():
# 여기에 print 문을 적어주세요

 

????? 뭔가 많이 다른데??

 

beverages = {
    "사이다": 1700,
    "콜라": 1900,
    "식혜": 2500,
    "솔의눈": 3000
}

for beverage, price in beverages.items():
    print(beverage, price)

#

사이다 1700
콜라 1900
식혜 2500
솔의눈 3000

힌트대로 했더니 훨씬 쉽게 실행값을 얻을 수 있었다.

 

item() 함수

딕셔너리 변수에만 사용할 수 있고, 매개변수는 갖고 있지 않다.

for문과 결합하여 key, value를 쌍으로 얻을 수 있다.

 

2. 사용자는 음료를 선택할 수 있습니다.

  • 사용자에게 어떤 음료를 살 것인지를 입력받습니다.
    • ex) 사이다
    • 목록에 없는 음료일 경우 실행이 종료됩니다.

모르겠다... 질문거리가 점점 늘어난다.