2022. 12. 28. 15:45ㆍcode/[프로그래머스] python
문제
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
❗제한사항❗
- 0 < num < 1,000,000
- 0 ≤ k < 10
- num에 k가 여러 개 있으면 가장 처음 나타나는 자리를 return 합니다.
입출력 예
입출력 예 설명
입출력 예 #1
- 29183에서 1은 3번째에 있습니다.
입출력 예 #2
- 232443에서 4는 4번째에 처음 등장합니다.
입출력 예 #3
- 123456에 7은 없으므로 -1을 return 합니다.
✔풀이
def solution(num, k):
answer = 0
numList=list(str(num))
if str(k) in numList:
answer=int(numList.index(str(k)))+1
else:
answer=-1
return answer
📝설명
num이 현재 정수로 주어져 있는데, 리스트로 바꾼 후에 문자열 k가 해당 리스트에 있는지 확인하고, 있다면 answer에 해당 숫자의 인덱스를 저장하고, 없다면 -1을 저장하도록 했다.
코드를 살펴보자면, 우선 num을 문자열로 변환한 후, 리스트로 변환하여 numList에 저장했다.
k도 현재 정수로 들어와 있기 때문에, 문자열로 변환한 후, 리스트에 있는지 없는지를 살펴본다.
만약 리스트에 있다면, answer값에 해당 숫자의 자리수를 넣어야 하는데 리스트의 인덱스는 0보다 시작하지만, 우리가 세는 숫자의 자리수는 0자릿수..? 그런 거 없다!
그렇기 때문에 인덱스 넘버를 구한 후 1을 더해주면 된다.
만약, str(k)가 numList에 없다면 answer 값에 -1을 저장한다.
👑모범 답안
🔎나의 코드와 비슷하지만, 차이점은 find를 썼다는 점이다.
이 답안을 풀어쓴다면,
이렇게 생겼다.
if의 조건문은 비슷하지만, find를 통해서 if의 return값이 str(num)에서 str(k)의 값이 어디에 있는지 위치를 나타난다.
이 때, 위치는 0부터 시작하므로 return값에 1을 더한다.
👀느낀 점
: 오늘 수업 시간에 find에 대해서 배웠다.
오늘 배운 내용을 다시 공부하면서, 문제 풀이에 잘 사용하는 멋쟁이가 될테야
'code > [프로그래머스] python' 카테고리의 다른 글
[코딩 테스트 연습 입문] 세균 증식 (0) | 2022.12.29 |
---|---|
[코딩 테스트 연습 입문] OX 퀴즈 (0) | 2022.12.28 |
[코딩 테스트 연습] 콜라 문제 (0) | 2022.12.28 |
[코딩 테스트 연습 입문] 문자열 계산하기 (0) | 2022.12.28 |
[코딩 테스트 연습 입문] 한 번만 등장한 문자 (0) | 2022.12.28 |