1. 없는 숫자 더하기.
✅ <문제 설명>
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
✅ <문제 풀이>
- 0~9 를 포함한 리스트를 만들기
- 입력받은 numbers 를 순회하며 0~9를 포함한 리스트에서 일치하면 제거
- 결국, numbers 에 없는 값들만 남게 되고, 이를 모두 더해줌으로써 Solve!
def solution(numbers):
zero_to_nine = [x for x in range(0,10)]
for e in numbers :
if e in zero_to_nine :
zero_to_nine.remove(e)
answer = sum(zero_to_nine)
return answer
크기가 작은 부분문자열
✅ <문제 설명>
숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요.
예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다.
✅ <입출력 예시>
✅ <문제 풀이>
- p 길이 만큼의 sub string 을 뽑아야 하기 때문에 len_p 변수에 p의 길이를 저장 !
- sub_t = [] 빈 리스트를 만들어 p 길이 만큼의 sub string 을 담을 준비
- 문자열의 첫 인덱스부터 p 길이 만큼 잘라서 sub_t 리스트에 append 후, 문자열 t 범위를 벗어나면 break !
- 이후, 저장된 sub string 을 p 와 비교하며, 작거나 같은 값들의 개수 구하기.
def solution(t, p):
len_p = len(p)
sub_t = []
for idx in range(len(t)) : # len(t) : 7, 0~6
if idx+len_p <= len(t) :
sub_t.append(t[idx:idx+len_p])
else :
break
answer = 0
print(sub_t)
for st in sub_t :
if int(st) <= int(p) :
answer += 1
return answer
반응형
'Programming > Python' 카테고리의 다른 글
[프로그래머스 Python] 제일 작은 수 제거하기 (속도 이슈..?) (0) | 2024.07.05 |
---|---|
[프로그래머스 Python] 가운데 글자 가져오기, 콜라츠 추측, 문자열 내림차순 배치하기 (0) | 2024.07.03 |
[프로그래머스 Python] 하샤드 수, 두 정수의 합, 수박수박수박수박수박수? (0) | 2024.06.28 |
[프로그래머스 Python] 자릿수 더하기 (0) | 2024.06.26 |
[python] time (0) | 2023.03.30 |