<aside>
💬 lv0
, 탐색
정렬된 숫자 배열과 타겟 숫자가 주어집니다. 주어진 배열에서 타겟 숫자의 위치(인덱스)를 찾는 코드를 작성해주세요. 배열에 타겟 숫자가 없는 경우 False를 반환합니다.
입력 (배열, 타겟 숫자) | 출력 (타겟 숫자의 위치 또는 False) |
---|---|
([1, 3, 5, 7, 9], 5) | 2 |
([2, 4, 6, 8, 10], 7) | False |
첫 번째 예시에서는 타겟 숫자 5가 배열의 인덱스 2에 위치하므로 2를 반환합니다. 두 번째 예시에서는 타겟 숫자 7이 배열에 없으므로 False를 반환합니다.
</aside>
def solution(data):
s, target = data
**#1 타겟 숫자 존재 여부 확인 및**
**#2 타겟 숫자의 인덱스 반환**
**#3 타겟 숫자 미존재 시 처리**
return s.index(target) if target in s else False
타겟 숫자 존재 여부 확인
주어진 배열 s
에서 타겟 숫자 target
이 존재하는지 in
연산자를 통해 확인합니다.
타겟 숫자의 인덱스 반환
타겟 숫자가 배열 내에 존재한다면, .index()
메소드를 사용해 그 위치(인덱스)를 반환합니다.
타겟 숫자 미존재 시 처리
타겟 숫자가 배열 내에 없는 경우, False
를 반환합니다.
조건부 표현식 (Conditional Expression)
기본 형태
value_if_true if condition else value_if_false
개념: 조건부 표현식은 Python에서 if-else
문을 한 줄로 간결하게 표현할 수 있는 문법입니다. 이는 일반적인 if-else
구문을 표현식 형태로 축약한 것으로, 조건에 따라 값 또는 표현식의 결과를 반환합니다.
# 이 코드는 x가 짝수인 경우 result에 "Even"을, 홀수인 경우 "Odd"를 할당합니다.
result = "Even" if x % 2 == 0 else "Odd"
enumerate()
를 사용한 탐색def solution(data):
**#1 문자열 순회 설정**
for i, c in enumerate(data[0]):
t = data[1]
**#2 타겟 문자 비교 및 인덱스 반환**
if c == t:
return i
**#3 타겟 문자 미발견**
return False
문자열 순회 설정
문자열을 순회하기 위해 enumerate()
함수를 사용합니다. 이 함수는 순회 중인 문자열의 각 문자와 해당 문자의 인덱스를 동시에 반환하므로, 문자와 그 위치를 함께 처리할 수 있습니다.
타겟 문자 비교 및 인덱스 반환
순회하는 동안, enumerate()
함수로부터 받은 각 문자를 타겟 문자와 비교합니다. 타겟 문자와 일치하는 문자가 발견되면, 그 문자의 인덱스를 즉시 반환합니다. 이는 타겟 문자를 찾는 즉시 순회를 중단하고 위치 정보를 반환함으로써 효율성을 높입니다.
타겟 문자 미발견 시 처리
문자열 전체를 순회했음에도 타겟 문자를 찾지 못한 경우, 즉 모든 문자를 검사한 후에도 타겟 문자가 없는 경우, False
를 반환합니다. 이는 타겟 문자가 문자열 내에 존재하지 않음을 나타내며, 함수의 호출자에게 이 정보를 전달합니다.
예외 처리 (try-except
블록)