코테로 배워보는 파이썬 : 코드카타 28~30번
코딩테스트 연습 | 프로그래머스 스쿨
개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!
school.programmers.co.kr
코테 문제 풀어보고 응용 문제 생각나는거 직접 풀어보기!
- 없는 숫자 더하기
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
- 컴퓨팅 사고
- 0~9까지 range로 i를 꺼낸 뒤 numbers에 들어있는지 확인해서 없으면 count+=i로 더하기
- 내 코드 (⭕)
def solution(numbers):
count=0
for i in range(0,10):
if i in numbers:
pass
else:
count+=i
return count - 다른 사람 풀이 1
def solution(numbers):
return 45 - sum(numbers)
# 0~9까지 합한 값에서 numbers 원소 합을 빼면 원소가 아닌 값의 합이 나옴... (이건 코딩보다는 수학아닌가?) - 다른 사람 풀이 2
def solution(numbers):
answer=0
for i in range(1,10):
if i not in numbers: # not in 을 쓰면 else로 안넘기고 바로 포함하지 않는 값을 조건으로 설정 가능
answer += i
return answer
- 컴퓨팅 사고
- 제일 작은 수 제거하기
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
- 컴퓨팅 사고
- 가장 작은 값을 찾고 remove로 제거, 이후 리스트 길이가
10이면-1[-1] 반환
- 가장 작은 값을 찾고 remove로 제거, 이후 리스트 길이가
- 내 코드 (🤖)
def solution(arr):
mini = min(arr)
arr.remove(mini)
if len(arr)==0: # if가 remove 뒤에 등장해야 [-1]이 반환 가능하고, 때문에 길이 조건이 1이 아닌 0이어야 함.
arr = [-1]
return arr
- 컴퓨팅 사고
- 가운데 글자 가져오기
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
- 컴퓨팅 사고
- 예를 들어 study의 경우 길이를 절반으로 나눈값(2.5)를 int로 변환(2)해서 인덱스로 불러내면 가운데 글자
- 만약 길이가 짝수라면 int 반환 인덱스랑
round 반올림int 반환값-1 인덱스 두 글자를 반환
- 내 코드 (⭕)
def solution(s):
if len(s) % 2 == 1:
answer = s[int(len(s)/2)]
else:
answer = s[int(len(s)/2)-1] + s[int(len(s)/2)] # 순서가 중요
return answer - 다른 사람 풀이
def solution(s):
return str[(len(s)-1)//2 : len(s)//2 + 1]
- 인덱스 슬라이싱으로 해결
- 슬라이싱 조건 1
홀수 길이 단어 ex) starcraft
(len(s)-1)//2 → (9-1)//2 = 4
짝수 길이 단어 ex) time
(len(s)-1)//2 → (4-1)//2 = 1 # // 는 몫만 반환 - 슬라이싱 조건 2
홀수 길이 단어 ex) starcraft
len(s)//2 + 1 → 9//2 + 1 = 5 # // 는 몫만 반환
짝수 길이 단어 ex) time
len(s)//2 + 1 → 4//2 + 1= 3 - (len(s)-1)//2 : len(s)//2 + 1는 홀수 일 땐 가운데 인덱스만(4:5), 짝수일 땐 가운데 2글자(1:3)를 반환하는 범위가 되는 것
- 슬라이싱 조건 1
- 인덱스 슬라이싱으로 해결
- 컴퓨팅 사고
'TIL > Python' 카테고리의 다른 글
| 코테로 파이썬 공부하기 Ⅶ (0) | 2026.05.29 |
|---|---|
| 코테로 파이썬 공부하기 Ⅵ (0) | 2026.05.28 |
| 코테로 파이썬 공부하기 Ⅲ (0) | 2026.05.25 |
| 코테로 파이썬 공부하기 Ⅱ (0) | 2026.05.22 |
| 코테로 파이썬 공부하기 Ⅰ (0) | 2026.05.20 |