https://school.programmers.co.kr/learn/courses/30/lessons/60057
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이 문제는 문자열 문제로 어렵지는 않았지만, 내가 복잡하게 푼 것같다.
코드를 간결하고 시간복잡도가 낮게 푸는 방법을 키우는 연습을 해야할 것같다.
def solution(s):
answer = 0
temp = 1
result = 1e9
for i in range(1, len(s)+1):
data = []
for j in range(0, len(s), i):
data.append(s[j:j+temp])
te = ""
co = 0
tt = 0
for j in range(len(data)):
if j == 0:
te = data[j]
co += 1
else:
if (data[j] == te):
co+= 1
else:
if co == 1:
tt += len(str(te))
else:
tt += (len(str(co)) + len(te))
te = data[j]
co = 1
if co == 1:
tt += len(str(te))
else:
tt += (len(str(co)) + len(te))
result = min(tt, result)
temp+=1
return result
- 나는 문자열의 길이만 담아서 최솟값을 비교해줬다. 문자열 자체를 담으면 메모리가 낭비되기 때문!
'👩💻 코테 공부 > 코테 공부' 카테고리의 다른 글
| [코테 - py] 테이블 해시 함수 (0) | 2024.07.27 |
|---|---|
| [코테 - py] 베스트 앨범 (0) | 2024.07.27 |
| [코테 - py] 백준 14890번 경사로 (0) | 2024.07.26 |
| [코테 - py] 숫자 문자열과 영단어 (0) | 2024.07.24 |
| [코테 - py] 숫자 카드 나누기 (1) | 2024.07.24 |