문제: 니머지 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/120810
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내 코드:
def solution(num1, num2):
return num1%num2
좋은 코드:
def solution(num1, num2):
while num1 >= num2:
num1 -= num2
return num1
def solution(num1, num2):
return divmod(num1, num2)[1]
solution = lambda num1, num2 : num1 % num2
문제: 중앙값 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/120811
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내 코드:
1. 오타
2. 나눗셈 이후에는 type이 float이다
# 수정 후
def solution(array):
len_array = len(array)
new_array = sorted(array)
# 수정 전에는
# int(len_array/2)+1 로 작성했는데, 그렇게하면 float에 반올림 이후 +1이라
# 원하는 값보다 +1로 나오게 됨
return new_array[int(len_array/2)]
좋은 코드:
def solution(array):
return sorted(array)[len(array) // 2]
def solution(array):
array = sorted(array)
length = len(array)//2
return array[length]
def solution(array):
answer = 0
array.sort()
answer = array[int((len(array) - 1) / 2)]
return answer
문제 : 최빈값 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/120812
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내 코드:
# 참고했는데 코드 수정하면서 안 쓴 것들
파이썬 원소의 개수 : print(fruits.count('원소이름'))
파이토닉하게 조건문 작성 : message = "성공" if status == "success" else "실패"
sorted는 중복제거 안함 : result = sorted(set(numbers))
# 틀렸던 코드
def solution(array):
cnt = 0
answer = 0
for i in range(len(array)):
j = array.count(array[i])
if array[i - 1] != array[i]:
if answer < j:
answer = j
elif answer == j:
cnt = -1
return answer
# 제미나이 힌트
i = 0일 때의 함정
정렬(Sort)의 부재
'최빈값' 그 자체를 기억하는 변수의 부재
#그리고 아예 처음부터 다시 생각
def solution(array):
ans1, ans2 = 0, 0
array = sorted(array)
kind = sorted(set(array))
for i in range(len(kind)):
j, k = array.count(kind[i]), kind[i]
if ans1 < j:
ans1 = j
ans2 = k
elif ans1 == j:
ans2 = -1
return ans2
좋은 코드:
def solution(array):
while len(array) != 0:
for i, a in enumerate(set(array)):
array.remove(a)
if i == 0: return a
return -1
def solution(array):
answer = 0
idx = [0] * 1001
for i in array:
idx[i] +=1
if idx.count(max(idx)) >1:
return -1
return idx.index(max(idx))
def solution(array):
keys = set(array)
dict = {}
max_freq = []
for key in keys:
dict[key] = array.count(key)
for key in keys:
if dict[key] == max(dict.values()):
max_freq.append(key)
if len(max_freq) > 1:
answer = -1
else:
answer = max_freq[0]
return answer
def solution(array):
num = 0
data = 0
for i in set(array):
if array.count(i) > num:
num = array.count(i)
data = i
elif array.count(i) == num:
data = -1
return data
문제: 짝수는 싫어요
https://school.programmers.co.kr/learn/courses/30/lessons/120813
코딩테스트 연습 - 짝수는 싫어요
알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려
school.programmers.co.kr
내 코드:
# 수정 전
def solution(n):
answer = []
for i in range(1,n+1,2):
answer.append(i)
# 파이토닉하게 수정해보기
def solution(n):
return [i for i in range(1,n+1,2)]
1) `answer = []`를 만들고 `append()`를 여러 번 호출할 필요 없이, `[이런 값을 넣을 거야 / for i가 돌 때마다]` 형태로 단 한 줄로 리스트를 생성해 반환할 수 있습니다.
2-1) 아쉬운 방식:
for i in range(len(array)):
print(array[i])
2-2) 수정한 방식:
for item in array:
print(item)
좋은 코드:
def solution(n):
return [x for x in range(n + 1) if x % 2]
def solution(n):
return list(range(1, n+1, 2))
def solution(n):
answer = []
for i in range(1, n + 1):
if i % 2 == 1:
answer.append(i)
return answer'카테부 4기 판교 ai 실무 > 코테 공부' 카테고리의 다른 글
| 프로그래머스 코딩테스트 "입문 문제" Day5 (0) | 2026.06.25 |
|---|---|
| [⭐ 꼭 다시보기⭐] 프로그래머스 코딩테스트 "입문 문제" Day4 (0) | 2026.06.24 |
| [⭐ 꼭 다시보기⭐] 프로그래머스 코딩테스트 "입문 문제" Day2 (0) | 2026.06.22 |
| 프로그래머스 코딩테스트 "입문 문제" Day1 (0) | 2026.06.20 |
| [⭐ 꼭 다시보기⭐] 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day25 (0) | 2026.06.19 |