ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2023.7.15.토요일 // 기초 300제 & 프로그래머스 문제
    TIL( Today I Learned) 2023. 7. 15. 00:37

    171

    아래와 같이 리스트의 데이터를 출력하라. 단, for문과 range문을 사용하라.

    price_list = [32100, 32150, 32000, 32500]
    
    Copy32100
    32150
    32000
    32500

    mine

    price_list = [32100, 32150, 32000, 32500]
    for i in price_list:
    print(i)



    해설1

    for i in range(4):
        print(price_list[i])

     

    해설2  = 제일 좋은 코드  - 이유는 price_list 값이 변하여도 상관없다

    for i in range(len(price_list)):
        print(price_list[i])

     

    && 이런 파생코드

    price_list = [32100, 32150, 32000, 32500]
    for i in range(4):
    print(price_list[:1+i])

    결과 값
    [32100]
    [32100, 32150]
    [32100, 32150, 32000]
    [32100, 32150, 32000, 32500]

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    172 번에서  

    enumerate() 사용 예-1

    fruits = ['apple', 'banana', 'orange']

    for index, fruit in enumerate(fruits):

    print(f"Index: {index}, Fruit: {fruit}")

     

    Index: 0, Fruit: apple
    Index: 1, Fruit: banana
    Index: 2, Fruit: orange

     

     enumerate() 사용 예-2

     

    price_list = [32100, 32150, 32000, 32500]
    for i, data in enumerate(price_list):
        print(i, data)

     

    0 32100
    1 32150
    2 32000
    3 32500

     

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    180

    리스트에 5일간의 저가, 고가 정보가 저장돼 있다. 고가와 저가의 차를 변동폭이라고 정의할 때, low, high 두 개의 리스트를 사용해서 5일간의 변동폭을 volatility 리스트에 저장하라.

    low_prices  = [100, 200, 400, 800, 1000]
    high_prices = [150, 300, 430, 880, 1000]
    volatility = []
    for i in range(len(low_prices)) :
        volatility.append(high_prices[i] - low_prices[i])
    
    ₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩
    volatility.append(i) = abs(high_prices[i] - low_prices[i]) ??????????
    
    여기서 volatility.append(i)는 잘못된 문법입니다. volatility.append()는 i를 volatility 리스트에 추가하려는 의도인 
    것 같지만, 할당 연산자 =가 사용되었는데, 이는 유효한 문법이 아님.
    
    volatility.append(abs(high_prices[i] - low_prices[i]))
    이렇게 수정하면 volatility.append()를 사용하여 high_prices[i] - low_prices[i]의 절대값을 volatility 리스트에 추가합니다.
    
    수정된 코드를 실행하면 volatility 리스트에는 각 인덱스에서 high_prices와 low_prices 간의 변동성이 계산되어 저장된다.

    185. - 어거지로 맞춘거 - 다시 봐야 ??????

    리스트에 저장된 데이터를 아래와 같이 출력하라.

    apart = [ [101, 102], [201, 202], [301, 302] ]
    101 호
    102 호
    201 호
    202 호
    301 호
    302 호

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    for row in apart:
        for col in row:
            print(col, "호")

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    나의 답 - 모잘라
     
    apart = [ [101, 102], [201, 202], [301, 302] ]
    for i in range(len(apart)):
    print(apart[i][0])
    print(apart[i][1])
     
    쳇gpt 도 나랑 같네 - 멋있게 하나의 식으로 표현할 수 있을까?

    apart = [[101, 102], [201, 202], [301, 302]]
    result = []

    for i in range(len(apart)):
        result.append("Room " + str(apart[i][0]))
        result.append("Room " + str(apart[i][1]))

    print(result)

     

    프로그래머스 문제 

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

    • 예각 : 0 < angle < 90
    • 직각 : angle = 90
    • 둔각 : 90 < angle < 180
    • 평각 : angle = 180

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

    angle = int(input("Enter the angle: "))
    result = solution(angle)
    print(result)

     

    당신이 제공한 코드에서 answer = (angle // 90) * 2 + (angle % 90 > 0) * 1 를 한국어로 설명해드리겠습니다:

    1. (angle // 90)는 angle을 90으로 나눈 몫을 계산합니다. angle을 90으로 나눌 때 나머지가 발생하지 않고 정확히 나누어 떨어지는 횟수를 의미합니다. 예를 들어, angle이 180인 경우 (angle // 90)의 결과는 2가 됩니다.
    2. * 2는 정수 나눗셈의 결과에 2를 곱합니다. 이는 90도 짝짓기에 따라서 각각의 짝은 2개의 직각을 의미하기 때문입니다.
    3. (angle % 90 > 0)는 angle을 90으로 나눈 나머지를 계산합니다. 만약 나머지가 0보다 크다면, angle은 90의 배수가 아니며 추가적인 예각이나 둔각이 존재한다는 것을 의미합니다.
    4. * 1는 나머지 연산의 결과에 1을 곱합니다. 이는 추가적인 각도에 대한 카운트를 위해 1을 추가하는 역할을 합니다.
    5. 마지막으로, 두 계산 값을 합하여 주어진 각도에서의 직각의 총 개수를 구합니다.

    예를 들어, 입력 각도가 135인 경우, 식은 다음과 같이 평가됩니다:

    • (angle // 90) * 2: (135 // 90) * 2는 1 * 2로 계산되어 2가 됩니다.
    • (angle % 90 > 0) * 1: (135 % 90 > 0) * 1는 45 > 0로 평가되어 True가 되고, 이후 1 * 1로 계산되어 1이 됩니다.
    • 두 값을 더함: 2 + 1은 최종 결과로 3을 얻습니다.

    따라서, answer 변수에는 주어진 각도에서의 직각 개수인 3이 할당됩니다.

     
    Regenerate response
Designed by Tistory.