ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2023.7.28.금요일, index() 함수 & 문제풀이
    TIL( Today I Learned) 2023. 7. 28. 21:50

    7.28 

     

     

    • 진료 순서 정하기 ??

    문제 설명

    외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 

    정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.

     

    제한사항

    • 중복된 원소는 없습니다.
    • 1 ≤ emergency의 길이 ≤ 10
    • 1 ≤ emergency의 원소 ≤ 100

     

    입출력 예

    emergency result
    [3, 76, 24] [3, 1, 2]
    [1, 2, 3, 4, 5, 6, 7] [7, 6, 5, 4, 3, 2, 1]
    [30, 10, 23, 6, 100] [2, 4, 3, 5, 1]

     

    def solution(emergency):

        # 응급도가 높은 순서대로 정렬

        sorted_emergency = sorted(emergency, reverse=True)

        # 해당 원소의 인덱스를 저장할 리스트 초기화

        result = [0] * len(emergency)

        # 각 원소의 인덱스 찾아서 저장

        for i in range(len(emergency)):

            result[i] = sorted_emergency.index(emergency[i]) + 1

        return result

     

     

     

    • 위 코드는 입력으로 들어온 `emergency` 리스트를 내림차순으로 정렬하고, 
    • 각 원소의 인덱스를 찾아서 `result` 리스트에 저장합니다. 
    • 이후 `result` 리스트를 반환합니다.

    위 코드는 `emergency`라는 리스트를 인자로 받아서, 

    해당 리스트의 원소를 응급도가 높은 순서대로 정렬하고, 

    각 원소의 인덱스를 찾아서 반환하는 함수입니다.

     

    먼저 `sorted()` 함수를 이용하여 `emergency` 리스트를 내림차순으로 정렬합니다.

     내림차순으로 정렬하는 이유는 응급도가 높은 환자가 먼저 진료받아야 하기 때문입니다.

     

    정렬된 리스트 `sorted_emergency`와 같은 길이의 리스트 `result`를 초기화합니다. 

    `result` 리스트는 각 원소의 인덱스를 저장할 리스트입니다.

     

    `for`문을 이용하여 `emergency` 리스트의 각 원소에 대해 해당 원소의 인덱스를 찾아서 `result` 리스트에 저장합니다.

     이때, `sorted_emergency.index(emergency[i])`를 이용하여 

    `emergency` 리스트의 i번째 원소가 정렬된 리스트 `sorted_emergency`에서 몇 번째에 위치하는지를 찾습니다. 그리고 인덱스를 찾았으면 1을 더해서 1부터 시작하는 인덱스로 변환합니다. 이렇게 변환된 인덱스를 `result` 리스트에 저장합니다.

     

    마지막으로 `result` 리스트를 반환합니다.

    • 숨어있는 숫자의 덧셈 (2)
    •  

    문제 설명

    문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요.

     

    제한사항

    • 1 ≤ my_string의 길이 ≤ 1,000
    • 1 ≤ my_string 안의 자연수 ≤ 1000
    • 연속된 수는 하나의 숫자로 간주합니다.
    • 000123과 같이 0이 선행하는 경우는 없습니다.
    • 문자열에 자연수가 없는 경우 0을 return 해주세요.

    공부해서 풀었다

     

    import re

     

    def solution(my_string):

        numbers = re.findall(r'\d+',my_string)

        int_num_list = [int(num) for num in numbers]

        aa = int_num_list

        aaa = sum(aa)

        

        answer = aaa

        return answer

     

     

    • 이차원 배열 대각선 순회하기
    •  

    문제 설명

    2차원 정수 배열 board와 정수 k가 주어집니다.

    i + j <= k를 만족하는 모든 (i, j)에 대한 board[i][j]의 합을 return 하는 solution 함수를 완성해 주세요.

     

    제한사항

    • 1 ≤ board의 길이 ≤ 100
    • 1 ≤ board[i]의 길이 ≤ 100
    • 0 ≤ k < board의 길이 + board[i]의 길이

     

    입출력 예

    board k result
    [[0, 1, 2],[1, 2, 3],[2, 3, 4],[3, 4, 5]] 2 8

    입출력 예 설명

    입출력 예 #1

    • 입출력 예 #1의 board를 표로 나타내면 다음과 같습니다.
    i \ j 0 1 2
    0 0 1 2
    1 1 2 3
    2 2 3 4
    3 3 4 5

    i + j 2보다 작거나 같은 항들의 합은 0 + 1 + 2 + 1 + 2 + 2 = 8이므로 8 return 합니다.

     

    index() 함수는 

    index() 함수는 목록에서 주어진 요소의 인덱스를 찾을 수 있도록 하는 Python의 내장 메서드입니다. 목록에서 지정된 요소가 처음 나타나는 인덱스를 반환합니다. 목록에서 요소를 찾을 수 없으면 ValueError가 발생합니다.

    다음은 index() 함수의 기본 구문입니다.

    list.index(element, start, end)

    • list: 요소를 검색하려는 목록입니다.
    • element: 인덱스를 찾으려는 요소입니다.
    • start(선택 사항): 검색이 시작되는 시작 인덱스입니다. 기본값은 0(목록의 시작 부분)입니다.
    • end(선택 사항): 검색이 중지되는 종료 인덱스(제외). 기본값은 목록의 끝입니다.

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

     

    # Find the index of 'banana' in the list

    index = fruits.index('banana')

    print(index)  # Output: 1

     

    # Find the index of 'banana' starting from index 2

    index = fruits.index('banana', 2)

    print(index)  # Output: 3

     

    # Find the index of 'orange' between index 1 and 3 (exclusive)

    index = fruits.index('orange', 1, 3)

    print(index)  # Output: 2

    위의 예에는 다양한 과일을 포함하는 'fruits' 목록이 있습니다. index() 함수를 사용하여 'banana' 요소의 인덱스를 찾고 인덱스 1에 있는 첫 번째 항목을 반환합니다. 선택적 인수 start 및 end를 지정하여 범위를 좁힐 수도 있습니다. 검색 범위. 요소를 찾을 수 없으면 index() 함수는 ValueError를 발생시킵니다. 따라서 try-except 블록을 사용하여 요소가 목록에 없을 가능성을 처리하는 것이 좋습니다.

    Python의 index() 함수는 목록, 튜플 또는 문자열과 같은 시퀀스 내에서 지정된 값의 인덱스(위치)를 찾을 수 있는 내장 메서드입니다. 일반적으로 시퀀스에서 요소의 첫 번째 항목을 찾는 데 사용됩니다.

    다음은 index() 함수의 구문입니다.

    sequence.index(value, start, end)

     

    • 시퀀스: 값의 인덱스를 찾으려는 시퀀스(목록, 튜플 또는 문자열)입니다.
    • value: 인덱스를 찾으려는 요소입니다.
    • start(선택 사항): 검색을 시작할 인덱스(포함). 제공되지 않으면 처음부터(인덱스 0) 검색이 시작됩니다.
    • end(선택 사항): 검색을 중지할 인덱스(독점). 제공되지 않으면 시퀀스가 ​​끝날 때까지 검색이 진행됩니다
    • .

    index() 함수는 시퀀스에서 지정된 값이 처음 나타나는 인덱스를 반환합니다. 

    값을 찾을 수 없으면 ValueError 예외가 발생합니다.

     

    목록이 있는 예:

    my_list = [10, 20, 30, 40, 50]

    index_30 = my_list.index(30)

    print(index_30)  # Output: 2

    이 예에서 index() 함수는 인덱스 2에 있는 목록 my_list에서 값 30의 첫 번째 항목을 찾습니다.

     

    문자열이 있는 예:

    my_string = "hello world"

    index_o = my_string.index('o')

    print(index_o)  # Output: 4

     

    이 예에서 index() 함수는 문자열 my_string에서 색인 4에 있는 'o' 문자의 첫 번째 항목을 찾습니다.

     

    검색 중인 값이 시퀀스에서 여러 번 나타나는 경우 index() 함수는 처음 나타나는 인덱스만 반환한다는 점을 명심하세요. 값의 모든 항목을 찾아야 하는 경우 루프 또는 목록 내포를 사용하여 모든 인덱스를 수집할 수 있습니다.

     

     

    'TIL( Today I Learned)' 카테고리의 다른 글

    2023.7.30. 일요일 // 프로그래머스 문제 그리고 코딧 강의  (0) 2023.07.30
    2023.7.29.토요일  (0) 2023.07.30
    2023.7.27.목요일  (1) 2023.07.27
    2023.7.26.수요일  (0) 2023.07.26
    2023.7.25.화요일  (0) 2023.07.25
Designed by Tistory.