def solution(num, k):
answer = -1 # 시작을 -1로 설정
str_num = str(num)
for i in str_num:
if i == str(k):
answer = str_num.index(i)+1
return answer
🤔 문제 풀이방법
- answer = -1 # 시작을 -1로 설정
- 고정 값으로 answer은 -1로 해둘게요!
- str_num = str(num)
- for문을 돌려줄 거기 때문에 num을 문자열화 해줄게요
- for i in str_num:
- for문을 돌립니다!
- if i == str(k):
- 만약 str_num(==i)이 문자열화 된 k와 같다면
- answer = str_num.index(i)+1
- i가 str_num의 index가 뭔지를 출력해줄게요
- +1을 해준 이유는, index의 기본값이 0부터 시작이기 때문에 +1을 해주었어요
- return answer
- answer을 리턴해주면, 문제 해결!
실패 흔적들
<1트>
분명 코드를 맞게끔 코드를 썼다고 생각했는데 카운트를 0부터 시작이 아니라 1부터 시작을 하더라구요 🤔
바보같이, 문제에 똑똑히 힌트를 줬는데 못 알아챘어요 ㅋㅋㅋㅋㅋㅋ
<2트>
도대체 뭐가 문제인지 인지하지 못했어요
그래서 print(i)해서 디버깅을 해보았어요
그랬더니,
if i ==str(k):
이 조건일 때만 작동되도록 설정돼 있더라구요
그래서 결괏값이 -1만 나온 거였어요
그래서 저 조건을 삭제했어요
<3트>
그러고, str_num이 어떻게 출력이 되는지 print(i)을 다시 해보았는데
하나하나 쭉쭉 밑으로 나오더라구요. 역시 for문,,
밑으로 하나씩 출력이 되는 거니까, '그냥 저기서 str(k)값의 .index()을 찾으면 되겠구나!!' 를 깨닫고
<5트>
def solution(num, k):
answer = -1 # 시작을 -1로 설정
str_num = str(num)
for i in str_num:
if i == str(k):
answer = str_num.index(i)
return answer
근데도 오답이 나오길래 결괏값을 봤더니
index()의 기본 카운팅 숫자가 0이었던 걸 간과했어요 ㅋㅋㅋㅋ,,,
<6트>
def solution(num, k):
answer = -1 # 시작을 -1로 설정
str_num = str(num)
for i in str_num:
if i == str(k):
answer = str_num.index(i)+1
return answer
그리하여 최종적으로 코드를 완성한 후, 문제를 해결했답니다! 😋
6트만에 성공했네요 🤪
문제 풀었으니 그걸로 된 거죠 뭐~~~
'문제 풀기 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 2차원 만들기 (+실패 흔적들), 슬라이싱[시작:끝:간격] (0) | 2024.12.30 |
---|---|
[프로그래머스] 문자열 정렬하기(1) (숫자 판별 문제, isdigit()) (1) | 2024.12.30 |
[프로그래머스] 369게임 (if, in) (0) | 2024.12.27 |
[프로그래머스] 배열 회전시키기 (+ .insert(), .pop(), 추가하는 함수들, 삭제하는 함수들 비교) (6) | 2024.12.27 |
[프로그래머스] 약수 구하기 range(), % (0) | 2024.12.24 |