- 핵심 내용
- 탐색하는 메소드는 find와 index 메소드가 있다.
- find 메소드는 탐색하는 값이 없다면 -1을 반환하고
- index 메소드는 탐색하는 값이 없다면 Value Error가 발생한다.

여기서 결과값에 1을 더한 이유는 문제에서 요구하는 값이
index 메소드로 찾은 값보다 1만큼 더 크기 때문
def solution(num, k):
arr = [i for i in str(num)]
try:
return arr.index(k)
except ValueError:
return -1
매개변수 num은 정수형 타입이기때문에 형변환을 하고서 리스트에 담았다.
def solution(num, k):
return -1 if str(k) not in str(num) else str(num).find(str(k))+1
삼항 연산자를 활용해서 효율적인 코드를 만들어 내었다.
나의 코드와 비교하면, 리스트를 담을때 사용한 반복문도 쓸모가 없어지는 셈이다.
또한 나와 달리 값을 탐색하는 메소드를 find를 사용했다.
값을 탐색 하는 메소드
find,index
arr = "123"
print(arr.find(str(3)))
print(arr.find(str(4)))
#출력
2
-1
arr = [1,2,3]
print(arr.index(3))
print(arr.index(4))
#출력
3
Value Error
find 메소드는 탐색하는 값이 없다면 -1을 반환하지만
index 메소드는 탐색하는 값이 없다면 Value Error가 발생한다.
따라서, 이 문제의 출제자의 의도는
find 메소드와 index 메소드의 차이점을 잘 알고 사용했음을 의도한게 아니였을까 싶은 마음에
위 지식을 습득하고서 다시 문제를 풀이했다.
나의 최종 풀이
def solution(num, k):
result = str(num).find(str(k))
return -1 if result<0 else result +1