문제 : 커피심부름
https://school.programmers.co.kr/learn/courses/30/lessons/181837
코딩테스트 연습 - 커피 심부름
알고리즘 문제 연습 카카오톡 친구해요! 프로그래머스 교육 카카오 채널을 만들었어요. 여기를 눌러, 친구 추가를 해주세요. 신규 교육 과정 소식은 물론 다양한 이벤트 소식을 가장 먼저 알려
school.programmers.co.kr
내 코드:
def solution(order):
answer = 0
for i in order:
if 'latte' in i:
answer += 5000
elif 'americano' in i:
answer += 4500
else:
answer += 4500
return answer
좋은 코드:
def solution(order):
answer = 0
for want in order:
if 'latte' in want:
answer += 500
answer += 4500
return answer
def solution(order):
return sum([5000 if "cafelatte" in i else 4500 for i in order])
문제: 그림확대
https://school.programmers.co.kr/learn/courses/30/lessons/181836
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내 코드:
def solution(picture, k):
answer = []
pic_list = ''
for i in range(len(picture)):
for j in range(len(picture[i])):
pic_list += (picture[i][j]) * k
for q in range(k):
answer.append(pic_list)
pic_list = ''
return answer
같은 코드 다른 방법:
def solution(picture, k):
answer = []
pic_list = ''
for i in range(len(picture)):
for j in range(len(picture[i])):
pic_list += (picture[i][j]) * k
answer += [pic_list] * k
pic_list = ''
return answer
좋은 코드:
def solution(picture, k):
answer = []
for i in range(len(picture)):
for _ in range(k):
answer.append(picture[i].replace('.', '.' * k).replace('x', 'x' * k))
return answer
def solution(picture, k):
answer = []
for i in range(len(picture)):
answer += [picture[i].replace('.', '.'*k).replace('x', 'x'*k)] * k
return answer
문제: 조건에 맞게 수열 변환하기 3
https://school.programmers.co.kr/learn/courses/30/lessons/181835
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내 코드:
파이썬 마법의 한 줄: 리스트 컴프리헨션 (추천)
# [ 변형할계산식 for 꺼낸원소 in 리스트 ]
# 예시: arr의 모든 원소에 k를 더하고 싶을 때 [x + k for x in arr]
# 예시: arr의 모든 원소에 k를 곱하고 싶을 때 [x * k for x in arr]
#TypeError: can only concatenate list (not "int") to list
def solution(arr, k):
answer = []
if k%2 == 0:
answer = [i + k for i in arr] #원래 answer = arr + k 를 했는데 에러
else:
answer = [i * k for i in arr] #원래 answer = arr * k 를 했는데 에러
return answer
좋은 코드:
def solution(arr, k):
return [i*k if k%2!=0 else i+k for i in arr]
def solution(arr, k):
if k % 2 != 0:
return list(map(lambda x: x * k, arr))
return list(map(lambda x: x + k, arr))
def solution(arr, k):
answer = []
if k %2 !=0:
for i in arr:
answer.append(k*i)
else:
for i in arr:
answer.append(i+k)
return answer
문제: i로 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/181834
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내 코드:
리스트 컴프리헨션 조건문
numbers = [1, 2, 3, 4, 5]
# i가 짝수면 'Even'을 넣고, 아니면 i 그대로 넣어라
result = ['Even' if i % 2 == 0 else i for i in numbers]
# 출력 결과: [1, 'Even', 3, 'Even', 5]
리스트를 문자열로
# 예시 my_list = ['a', 'b', 'c'] # 빈 문자열("")을 기준으로 리스트의 요소들을 합칩니다.
result = "".join(my_list)
# 출력 결과: "abc"
def solution(myString):
answer = ['l' if i < 'l' else i for i in myString]
return ''.join(answer)
좋은 코드:
def solution(myString):
return myString.translate(str.maketrans('abcdefghijk', 'lllllllllll'))
def solution(myString):
answer = ''
for i in myString:
if i < "l":
answer+='l'
else:
answer+=i
return answer
def solution(myString):
return ''.join(['l' if ord(i) < ord('l') else i for i in myString])
문제: 특별한 2차원 배열1
https://school.programmers.co.kr/learn/courses/30/lessons/181833
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내 코드:
결과값 맨 앞에 자꾸 빈 []이 들어가있는 이유:
answer [[]]로 선언해놔서.
[[]] : "빈 리스트([])"라는 원소를 하나 가지고 있는 리스트입니다. (이미 상자가 하나 들어있는 상태예요!)
이 상태에서 아래 for 문을 돌며 answer.append(n_list)를 하니까,
기존에 들어있던 빈 리스트 뒤에 새로 만든 행들이 붙으면서 결과가 이렇게 나온 것입니다.
시작 상태: [[]]
1번째 반복 후: [[], [1, 0, 0]]
2번째 반복 후:[[], [1, 0, 0], [0, 1, 0]]
...
def solution(n):
answer = []
n_list = []
for i in range(n):
for j in range(n):
if i == j:
n_list.append(1)
else:
n_list.append(0)
answer.append(n_list)
n_list = []
return answer
🤖제미나이 방법:
def solution(n):
# 맨 앞에 빈 배열 하나를 품고 시작합니다. -> [[]]
answer = [[]]
n_list = []
for i in range(n):
for j in range(n):
if i == j:
n_list.append(1)
else:
n_list.append(0)
# [핵심] 맨 처음 행(i가 0일 때)은 append하지 않고 0번째 자리에 그대로 대입!
if i == 0:
answer[0] = n_list
else:
answer.append(n_list)
n_list = []
return answer
def solution(n):
# n의 크기만큼 빈 배열들을 미리 만들어둡니다. (예: n=3이면 [[], [], []])
answer = [[] for _ in range(n)]
for i in range(n):
for j in range(n):
if i == j:
# i번째 층(행)에 바로 1을 추가
answer[i].append(1)
else:
# i번째 층(행)에 바로 0을 추가
answer[i].append(0)
return answer
def solution(n):
return [[1 if i == j else 0 for j in range(n)] for i in range(n)]
좋은코드:
def solution(n):
answer=[[0]*n for i in range(n)]
for i in range(n): answer[i][i]=1
return answer
def solution(n):
return [[int(i==j) for i in range(n)] for j in range(n)]
def solution(n):
answer = [[0]*n for _ in range(n)]
for i in range(n):
for j in range(n):
if i==j:
answer[i][j] += 1
break
return answer
def solution(n):
answer = [[]]
del answer[0]
for i in range(n):
answer.append(n*[0])
for i in range(n):
answer[i][i] = 1
return answer'카테부 4기 판교 ai 실무 > 코테 공부' 카테고리의 다른 글
| 프로그래머스 코딩테스트 "입문 문제" Day1 (0) | 2026.06.20 |
|---|---|
| [⭐ 꼭 다시보기⭐] 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day25 (0) | 2026.06.19 |
| 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day23 (0) | 2026.06.17 |
| 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day22 (0) | 2026.06.15 |
| 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day21 (0) | 2026.06.15 |