# ๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/142086
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
# ๋ฌธ์ ์์ฝ
s๊ฐ ์ฃผ์ด์ก์๋ ๊ฐ๊ฐ์ ์ธ๋ฑ์ค์ ์ผ์ชฝ์ผ๋ก ๊ฐ ์์ผ๋ฉด -1, ๊ฐ ์์ผ๋ฉด ๊ฐ๊น์ด ๊ฐ๊ณผ์ ๊ฑฐ๋ฆฌ ์ถ๋ ฅ

# ํต์ฌ ๊ฐ๋
๋์ ๋๋ฆฌ์ ๊ฐ์ ์ถ๊ฐํ๊ธฐ ์ํด์๋
๋์ ๋๋ฆฌ[ํค] = ๊ฐ
๋ํ ๋์ ๋๋ฆฌ์ ๊ฐ์ ์์ ํ๊ธฐ ์ํด์๋
๋์ ๋๋ฆฌ[ํค] = ๊ฐ
๋ํ rfind์ ๊ฐ์ ํจ์๋ฅผ ์ธ ํ์ ์์ด
๋์ ๋๋ฆฌ์์๋ ๊ฐ์ด ์ฒ์ ๋์์ ๊ฒฝ์ฐ, ๋์ค์ ๋์์ ๊ฒฝ์ฐ์ ๋ํด์ ๊ฐฑ์ ํ ์ ์๋ค
ํค : ๊ฐ
# ๋ฌธ์์ด ์ฐพ๊ธฐ - find(), rfind()
- ๋ฌธ์์ด ๋ด๋ถ์์ ํน์ ๋ฌธ์๊ฐ ์ด๋์ ์์นํ๋์ง ์ฐพ์ ๋ ์ฌ์ฉํ๋ค.
- find()ํจ์๋ ์ผ์ชฝ๋ถํฐ ์ฐพ๊ณ , rfind()ํจ์๋ ์ค๋ฅธ์ชฝ๋ถํฐ ์ฐพ๋๋ค.
ํ์์
๋ฌธ์์ด.find()
๋ฌธ์์ด.rfind()์ด๋ค
( ๋ฆฌ์คํธ ํํ๊ฐ ์๋๋ค! )
์ ํด์ง ๋ฒ์ ์์์ ์ฐพ๊ณ ์ ํ๋ ๋ฌธ์์ด์ด ์์ผ๋ฉด rfind๋ find์ ๊ฐ์ด -1์ ๋ฆฌํดํ๋ค.
โป index๋ ๋ฌธ์์ด๊ณผ ๋ฆฌ์คํธ์์ ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง, rfind๋ ๋ฌธ์์ด์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค
rfind๋ ๋ฆฌ์คํธ์์ ์ฌ์ฉํ๋ฉด ์ค๋ฅ๊ฐ ๋ํ๋๋ค!
lst = [1,2,3,4,5,6]
result1 = lst.index(5)
print(result1)
arr = 'apple'
result2 = arr.rfind('p')
print(result2)
result = arr.index('p')
print(result)
result3 = lst.rfind(5)
print(result3)
[ ๊ฒฐ๊ณผ ]
4
2
1
Traceback (most recent call last):
File "d:\vscode\ex.py", line 13, in <module>
result3 = lst.rfind(5)
^^^^^^^^^
AttributeError: 'list' object has no attribute 'rfind'
PS D:\vscode>
# ์์ฌ์ ๋ ์
ํญ์ ์ด๋ค ๋ฌธ์ ๋ฅผ ๋ณด๋ฉด ์๋์ ์ผ๋ก ๋ฆฌ์คํธ๋ก๋ง ํ๋ ค๋ ๊ฒฝํฅ์ด ์๋๋ฐ
๋ฆฌ์คํธ ๋ฟ๋ง ์๋๋ผ ๋์ ๋๋ฆฌ ๋ํ ์ฌ์ฉํ ์ ์๋์ง
ํค : ๊ฐ์ผ๋ก ๋ํ๋ผ ์ ์๋ ํน์ฑ์ ์ ๊ธฐ์ตํ๋ฉด์ ๋ฌธ์ ๋ฅผ ํ์์ผ๋ฉด ์ข๊ฒ ๋ค
ํ์ค์์ฝ
๋ฆฌ์คํธ ๋ฟ๋ง ์๋๋ผ ๋์ ๋๋ฆฌ๋ ์๊ฐํ์

# ์ ๋ต ์ฝ๋
def solution(arr):
answer = []
dict1 = dict()
for i in range(len(arr)):
if arr[i] not in dict1:
answer.append(-1)
else:
answer.append(i - dict1[arr[i]])
dict1[arr[i]] = i
return answer
print(solution("banana"))
# Reference
python | ๋ค์์๋ถํฐ ์ฐพ์ ๋ ์ฌ์ฉํ๋ rfind(), rindex()
์ฐพ๊ณ ์ ํ๋ ์์๊ฐ ์์์๋ถํฐ ๋ช ๋ฒ์งธ์ ์์นํ๋์ง ์๊ณ ์ ํ๋ฉด find ๋๋ index๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. python | ํ์ด์ฌ find() ํจ์ ์ฌ์ฉ ๋ฐ index()์ ์ฐจ์ด์ ํ์ด์ฌ์์ ํน์ ๋ฌธ์์ด์ ์์น, ์ธ๋ฑ์ค ๋ฒ
dduniverse.tistory.com