<로직 고민>
- 일단 for문을 돌리고 if문으로 k와 같은 글자가 있는지 찾아야겠군
- 그리고 그 숫자의 인덱스를.....찾아야 하는데 흠...리스트로 변환해야 하나?
- enumulate인가 그거 써야 하나?
def solution(num, k):
for number, i in enumerate(num):
if num == number:
return num[i]
- 이렇게 짜봤는데 TypeError: 'int' object is not iterable 라는 에러가 나온다
- iterable은 '반복할 수 있는'은 뜻이군
- 리스트로 변환해야 하는군!!!
- 정수를 리스트로 변환하는 건 좀 복잡한 것 같다..
- 그리고 enumulate는 여기서 쓰는 게 아닌 것 같다
- 이유는 모르겠는데 자꾸 None이 나와서 ...후
- 결국 풀기는 풀었다
<완성된 코드>
def solution(num, k):
answer = 0
num_list = list(map(int, str(num))) # 정수형인 num을 리스트로 변환
for number in num_list: # 리스트가 된 num_list를 for문에 돌려 값을 하나씩 꺼냄
answer += 1 # for문을 한 번씩 돌 때마다 1을 더해줌->자릿수가 됨
if k in num_list: # num_list에 매개변수 k가 있는 경우
if number == k: # num_list 속 number와 k가 같으면
return answer # answer 반환(자릿수)
else: # num_list에 매개변수 k가 없는 경우
return -1 # -1을 반환함
print(solution(29183, 2))
print(solution(232443, 4))
print(solution(123456, 7))
# 출력화면
# 1
# 4
# -1
<다른 사람 코드>
- 천재풀이1
def solution(num, k):
return -1 if str(k) not in str(num) else str(num).find(str(k)) + 1
- 이런 코드...이젠 싫다......너무 허무해짐...ㅜ
- 하지만 '오호 이렇게도 풀 수 있구나!!!'하는 마음이 더 큼ㅋㅋㅋ
- 문자열의 위치를 반환하는 함수 find...오키
- +1을 한 이유는 인덱스가 0부터 시작하기 때문이겠지! 오키
- 천재풀이2
def solution(num, k):
for i, n in enumerate(str(num)):
if str(k) == n:
return i + 1
return -1
- 앗 enumerate 쓸 수 있구나.....
- 나는 아직도 enumrate를 어떻게 활용해야 하는지 모르는 거 같다..ㅋㅋㅋ
- 진짜 계속 None 나와가지고 막 n[i] +1 했다가 int(i) + 1 했다가 암튼 별 걸 다 넣었는데 후 저렇게 쓸 생각은 못하다니...