문제 : x사이의 개수
https://school.programmers.co.kr/learn/courses/30/lessons/181867
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내 코드:
def solution(myString):
answer = []
cnt = 0
for i in range(len(myString)):
if myString[i] == 'x':
answer.append(cnt)
cnt = 0
else:
cnt += 1
answer.append(cnt)
return answer
좋은 코드 :
def solution(myString):
return [len(w) for w in myString.split('x')]
def solution(myString):
answer = []
myString=myString.split("x")
for i in myString:
answer.append(len(i))
return answer
문제: 문자열 잘라서 정렬하기
https://school.programmers.co.kr/learn/courses/30/lessons/181866
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내코드:
내가 작성했지만 작동 안한 코드
# answer.append(i for i in myString.split('x'))
🤖 append는 하나만 넣음 : append() 는 인자로 들어온 객체 딱 하나를 리스트 끝에 추가합니다. 결국
answer 리스트 안에는 문자열이 아니라 <generator object ...> 라는 기계 하나가 덜렁 들어가게 됩니다.
# 방법 A: 리스트 컴프리헨션 (가장 추천하는 파이토닉한 방법)
answer = [i for i in myString.split('x')]
# 방법 B: 기존 리스트에 확장하기
answer.extend(i for i in myString.split('x'))
내가 작성했지만 작동 안한 코드
return answer.sort()
🤖 answer.sort() 는 원본을 변경하고 None 을 반환합니다.
정렬해서 바로 리턴하고 싶다면? 원본을 두고 정렬된 새로운 리스트를 반환 하는
sorted() 함수를 사용해야 합니다.
# sorted()는 정렬된 새 리스트를 반환하므로 바로 return 가능!
return sorted(answer)
def solution(myString):
answer = []
myString = myString.split('x')
for i in myString:
if len(i)>0:
answer.append(i)
answer.sort()
return answer
좋은코드:
def solution(myString):
return sorted([i for i in myString.split("x") if len(i)!=0])
def solution(myString):
return sorted(ch for ch in myString.split('x') if ch)
def solution(myString):
answer = ' '.join(myString.split('x')).split()
return sorted(answer)
문제: 간단한 식 계산하기
https://school.programmers.co.kr/learn/courses/30/lessons/181865
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내 코드:
- 문제 코드
def solution(binomial):
a, b = 0,0
op=''
for i in range(len(binomial)):
if binomial[i] == ' ':
a = int(binomial[:i])
elif binomial[i] is not int: #🤖binomial[i]는 문자열(str)입니다.
op = binomial[i]
a = i
else:
b = int(binomial[a+1:i]) #🤖변수 a의 역할 혼선 (6, 9, 11번 라인)
if op == '+':
return a + b
elif op == '-':
return a-b
else:
return a*b
- 🤖 제미나이 코드:
def solution(binomial):
a, b = 0, 0
op = ''
# 첫 번째 숫자의 시작 인덱스는 무조건 0입니다.
# 연산자 뒤에 오는 두 번째 숫자의 시작 인덱스를 기억할 변수를 만듭니다.
b_start_idx = 0
for i in range(len(binomial)):
# 1. 첫 번째 공백을 만났을 때 -> 앞부분을 잘라서 a에 저장
if binomial[i] == ' ' and op == '':
a = int(binomial[:i])
# 2. 연산자를 만났을 때 -> 연산자를 저장하고, 두 번째 숫자가 시작될 위치를 찜해둠
elif binomial[i] in ['+', '-', '*']:
op = binomial[i]
# 연산자 뒤에 공백이 하나 더 있으니, 숫자는 i + 2번째 인덱스부터 시작합니다.
b_start_idx = i + 2
# 3. 반복문이 끝나면 b_start_idx부터 끝까지 잘라서 b에 저장
b = int(binomial[b_start_idx:])
# 4. 저장된 op에 따라 계산 처리
if op == '+':
return a + b
elif op == '-':
return a - b
else:
return a * b
-고친 코드
def solution(binomial):
binomial = binomial.split(' ')
if binomial[1] == '+':
return int(binomial[0]) + int(binomial[2])
elif binomial[1] == '-':
return int(binomial[0]) - int(binomial[2])
else:
return int(binomial[0]) * int(binomial[2])
좋은 코드:
solution=eval
def solution(binomial):
a, op, b = binomial.split()
a = int(a)
b = int(b)
if op == "+":
result = a + b
elif op == "-":
result = a - b
elif op == "*":
result = a * b
return result
def solution(binomial):
return eval(binomial)
문제 : 문자열 바꿔서 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/181864
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내 코드:
문자열 안에 특정 문자열
text = "Hello, World!" print("World" in text) # 출력: True
replace 사용법
문자열.replace("바꿀_대상", "새로운_문자", [바꿀_횟수])
def solution(myString, pat):
answer = 0
#🤖 문자열.replace("바꿀_대상", "새로운_문자", [바꿀_횟수])
myString = myString.replace('A', 'C')
myString = myString.replace('B', 'A')
myString = myString.replace('C', 'B')
if pat in myString : return 1
else: return 0
좋은 코드:
def solution(myString, pat):
return int(pat in myString.replace('A', 'C').replace('B', 'A').replace('C', 'B'))
def solution(myString, pat):
return int(''.join(['A' if i == 'B' else 'B' for i in pat]) in myString)
def solution(myString, pat):
return int(pat in ''.join('AB'[ch == 'A'] for ch in myString))
def solution(myString, pat):
myString = myString.replace("A","C")
myString = myString.replace("B","D")
myString = myString.replace("C","B")
myString = myString.replace("D","A")
return 1 if pat in myString else 0
문제: rny_string
https://school.programmers.co.kr/learn/courses/30/lessons/181863
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
내 코드:
def solution(rny_string):
answer = rny_string.replace('m', 'rn')
return answer
좋은 코드:
def solution(rny_string):
answer = ''
for i in rny_string:
if i=="m":
answer+='rn'
else:
answer+=i
return answer
def solution(rny_string):
answer = []
for x in rny_string:
if x=='m': answer.append('rn')
else: answer.append(x)
return ''.join(answer)'카테부 4기 판교 ai 실무 > 코테 공부' 카테고리의 다른 글
| 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day20 (0) | 2026.06.13 |
|---|---|
| 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day19 (0) | 2026.06.12 |
| 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day17 (0) | 2026.06.10 |
| 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day16 (0) | 2026.06.09 |
| 카테부 4기 판교 ai 실무프로그래머스 코딩 기초 트레이닝 Day15 (0) | 2026.06.08 |