문제 : 세 개의 구분자
https://school.programmers.co.kr/learn/courses/30/lessons/181862
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내코드:
처음에는 바로 for 반복문을 도는걸 생각했으나 그럼 조건이 너무 많아질 것 같아서 패스,,
두번째로 split을 생각했으나, 문자열에 각각의 구분자를 적용 해도 적용이 안됨
🤖 제미나이에게 힌트를 물어보니, 구분자 3개를 1개로 만든 후 진행하라고 해서 바로 작성, 그리고 바로 성공
def solution(myStr):
answer = []
# index = 0
# for i in range(len(myStr)):
# if (myStr[i] == 'a' or myStr[i] =='b' or myStr[i] =='c'):
# if len(myStr[index:i]) != 0:
# answer.append(myStr[index:i])
# index = i+1
# print(answer)
# text = myStr.split('a')
# print(text)
# text = myStr.split('b')
# text = myStr.split('c')
# print(text)
myStr = myStr.replace('b',"a")
myStr = myStr.replace('c','a')
myStr = myStr.split('a')
for i in myStr:
if len(i) != 0:
answer.append(i)
if len(answer) == 0 :
answer.append('EMPTY')
return answer
좋은코드:
def solution(myStr):
answer = [x for x in myStr.replace('a', ' ').replace('b', ' ').replace('c', ' ').split() if x]
return answer if answer else ['EMPTY']
import re
def solution(myStr):
answer = [m for m in re.split('a|b|c',myStr) if m]
if len(answer)==0:
answer=["EMPTY"]
return answer
def solution(myStr):
answer = []
str_split = ['a', 'b', 'c']
word = ''
for s in myStr:
if s in str_split:
if word:
answer.append(word)
word = ''
else:
continue
else:
word += s
if word:
answer.append(word)
return answer if answer else [ 'EMPTY']
문제: 배열의 원소만큼 추가하기
https://school.programmers.co.kr/learn/courses/30/lessons/181861
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내코드:
def solution(arr):
answer = []
for i in arr:
for j in range(i):
answer.append(i)
return answer
좋은 코드:
def solution(arr):
return [i for i in arr for j in range(i)]
def solution(arr):
answer = []
for num in arr:
answer += [num] * num
return answer
🤖 제미나이 코드:
def solution(arr):
answer = []
for i in arr:
repeated_list = [i] * i
# append 대신 extend를 사용하면 리스트 안의 요소를 '알맹이만' 쏙 빼서 추가해 줍니다.
answer.extend(repeated_list)
return answer
문제: 빈 배열에 추가,삭제하기
https://school.programmers.co.kr/learn/courses/30/lessons/181860
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내 코드:
def solution(arr, flag):
answer = []
x = ''
for i in range(len(flag)):
if flag[i] is True:
for j in range(arr[i]*2):
answer.append(arr[i])
x = arr[i]
else:
answer = answer[:-arr[i]]
return answer
좋은 코드:
def solution(arr, flag):
arr1 = []
for i, j in zip(arr, flag):
if j:
arr1 += [i] * i * 2
else:
arr1 = arr1[:-i]
return arr1
def solution(arr, flag):
X = []
for i, f in enumerate(flag):
if f:
X += [arr[i]] * (arr[i]*2)
else:
for _ in range(arr[i]):
X.pop()
return X
🤖제미나이 코드:
def solution(arr, flag):
answer = []
for i in range(len(flag)):
if flag[i]:
answer.extend([arr[i]] * (arr[i] * 2))
else:
answer = answer[:-arr[i]]
return answer
문제: 배열만들기6
https://school.programmers.co.kr/learn/courses/30/lessons/181859
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내 코드:
처음에 stk 를 '' 문자열로 해서 에러
def solution(arr):
answer = []
stk = []
for i in range(len(arr)):
if len(stk) == 0:
stk.append(arr[i])
else:
if arr[i] == stk[-1]:
stk = stk[:-1]
else:
stk.append(arr[i])
if len(stk) == 0 : stk.append(-1)
answer = stk
return answer
🤖제미나이 코드 :
def solution(arr):
stk = []
for num in arr:
# stk에 원소가 있고, 마지막 원소가 현재 숫자와 같다면 맨 뒤 원소 제거
if stk and stk[-1] == num:
stk.pop()
# stk이 비어있거나, 마지막 원소와 현재 숫자가 다르다면 원소 추가
else:
stk.append(num)
# 비어있으면 [-1]을, 채워져 있으면 stk을 그대로 반환
return stk if stk else [-1]
좋은코드:
def solution(arr):
stk = []
for i in range(len(arr)):
if stk and stk[-1] == arr[i]:
stk.pop()
else:
stk.append(arr[i])
return stk or [-1]
문제: 무작위로 k개의 수 뽑기
https://school.programmers.co.kr/learn/courses/30/lessons/181858
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내코드:
파이썬 중복 지우기
my_list = [2, 1, 3, 2, 4, 1, 5]
unique_list = list(set(my_list))
print(unique_list) # 결과: [1, 2, 3, 4, 5]
sorted(list(set(arr))) 로 정렬을 하려 했으나
문제에서 원하는건 크기 정렬이 아니라 들어온순이기 때문에 다시..
#틀린 코드
def solution(arr, k):
arr = list(set(arr))
print(arr)
arr = arr[:k]
print(arr)
if len(arr) == k:
return arr
else:
for i in range(k-len(arr)):
arr.append(-1)
return arr
#성공한 코드
def solution(arr, k):
answer = []
#arr = (list(set(arr)))
for i in arr:
if len(answer) == k:
break
if i not in answer:
answer.append(i)
print(answer)
if len(answer) == k:
return answer
else:
for i in range(k-len(answer)):
answer.append(-1)
return answer
좋은 코드:
def solution(arr, k):
res = list(dict.fromkeys(arr))
res.extend([-1] * max(0, k - len(res)))
return res[:k]
def solution(arr, k):
ret = []
for i in arr:
if i not in ret:
ret.append(i)
if len(ret) == k:
break
return ret + [-1] * (k - len(ret))'카테부 4기 판교 ai 실무 > 코테 공부' 카테고리의 다른 글
| 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day21 (0) | 2026.06.15 |
|---|---|
| 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day20 (0) | 2026.06.13 |
| 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day18 (1) | 2026.06.11 |
| 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day17 (0) | 2026.06.10 |
| 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day16 (0) | 2026.06.09 |