-
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