1. 프로그래머스 python 코딩테스트
Level 0. 숫자 찾기
정수 num과 k가 매개변수로 주어질 때, num을 이루는 숫자 중에 k가 있으면 num의 그 숫자가 있는 자리 수를 return하고 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
나의 오답 확인
- 문법 요류 있음.
def solution(num, k): str(num) return [n.index(i) if i == str(k) else -1 for i in n]
1.
str(num)
으로만 쓰면 변경된 타입이 num에 저장되지 않음. 변수설정을 해줘야함.n = str(num)
이 옳음.
2..index
는숫자
사용 불가.문자
리스트
사용 가능함.
3.[참값 if 조건 else 거짓값 for in 리스트]
는 무조건[]
괄호가 있어야함.
- 삼항자 연산식
[]
필요 없음.
참값 if 조건 else 거짓값 for in 리스트
[]
필수[i for i in 리스트 if 조건]
[참값 if 조건 else 거짓 for i in 리스트]
[]
대괄호를 친다고 해도, 문제가 '위치 하나만 반환' 하라고 했는데, [ ] 괄호를 치면, [ 2, 3, -1, -1, 1, ]이런식으로 모든 값에 대하여 반환하게됨.정답 확인
def solution(num, k):
return str(num).index(str(k))+1 if str(k) in str(num) else -1
.index()
는 처음 나온 k값의 인덱스만 반환함. 중복값이있어도, 가장 먼저 나온 위치값을 반환하기 때문에 사용 가능.def solution(num, k):
return str(num).find(str(k))+1 if str(k) in str(num) else -1
.index()
대신 .find()
써도 됨.. find() 정리
- 처음 등장한 위치만 반환
문자열
에서만 사용 가능.
리스트
불가 -.index()
사용