반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 사회조사분석사 2급 독학
- 사회조사분석사 2급 기출문제집
- 백준 알고리즘
- 사회조사분석사 2급 필기 요약정리
- 알고리즘
- 그리디
- 사회조사분석사 2급 필기 시험시간
- DFS
- 오미크론 자가격리
- 사회조사분석사 2급
- 현대엔지니어링
- 공모주 청약
- 백준
- 사회조사분석사 2급 접수
- 2월공모주
- 벽부수고이동하기 파이썬
- 사회조사분석사 2급 필기 공부방법
- 시물레이션
- 정렬
- 사회조사분석사2급실기신청꿀팁
- 머신러닝
- 사회조사분석사2급실기신청
- 너비우선탐색
- BFS
- 공모주
- 현대엔지니어링 수요예측
- 사회조사분석사 2급 공부방법
- 파이썬 정렬
- 공모주청약
- 사이킷런
Archives
- Today
- Total
세상을 바꾸는 데이터
[2020 KAKAO BLIND RECRUITMENT] 문자열 압축 - 파이썬 본문
이코테에 있는 알고리즘 유형별 기출문제 구현 부분의 9번 문제를 풀어보았다.
이 문제는 문자열 압축 문제로서 2020년 카카오 블라인드 채용 코딩테스트 문제이기도 했다.
다음 프로그래머스 사이트에서 테스트해야 정상 동작하니 다음 사이트에 들어가 직접 코드를 작성해보자.
문제 링크:
https://programmers.co.kr/learn/courses/30/lessons/60057?language=python3
풀이 방법:
이 문제는 요구하는 내용을 그대로 구현하면 되는 문제이다.
1. 문자열이 입력되었을 때 문자를 하나씩 확인한 후, 숫자인 경우는 따로 합계를 계산하고, 알파벳인 경우 별도의 리스트에 저장한다.
2. 결과적으로 리스트에 저장된 알파벳들을 정렬해 출력하고, 합계를 뒤에 붙여서 출력하면 정답 판정을 받을 수 있다.
이렇게 총 5가지 절차를 거치면 된다.
처음 풀었을 때는 대략적인 알고리즘 틀은 구현했지만 이를 소스코드로 옮기기가 쉽지 않다. 이게 바로 구현의 매력인 것 같다.
구현은 풀 수 있을 것 같지만 코드를 써보면 막상 잘 안 풀리기에 나 역시 많은 연습이 필요하다.
처음부터 다 잘하는 사람이 몇 명이나 있을까?
모든지 시간과 노력을 투자해 꾸준히 공부하고 복습하여 자신만의 것으로 만드는 것이 중요한 것 같다. 오늘도 파이팅!!
풀이 코드:
# 이코테
# 9번 문자열 압축
def solution(s):
answer = len(s)
# 1개 단위부터 압축 단위를 늘려가며 확인
for step in range(1, len(s) // 2 + 1):
compressed = ''
prev = s[0:step]
count = 1
# 단위 크기만큼 증가시키며 이전 문자열과 비교
for j in range(step, len(s), step):
# 이전 상태와 동일하다면 압축횟수(compressed) 증가
if prev == s[j:j + step]:
count += 1
# 다른 문자열이 나왔다면(압축을 못한다면)
else:
compressed += str(count) + prev if count >= 2 else prev
prev = s[j:j + step] # 다시 상태 초기화
count = 1
# 남아 있는 문자열 처리
compressed += str(count) + prev if count >= 2 else prev
# 만들어지는 압축 문자열이 가장 짧은 것이 정답
answer = min(answer, len(compressed))
return answer
728x90
반응형
'PS Study > 이코테 문제풀이' 카테고리의 다른 글
[프로그래머스] 실패율 - 파이썬 (76) | 2022.03.03 |
---|---|
[백준 10825번] 국영수 - 파이썬 (61) | 2022.03.02 |
[백준 16234번] 인구 이동 - 파이썬 (59) | 2022.02.27 |
[이코테 코드 리뷰] - 구현 예제 및 실전 문제 (9) | 2022.01.26 |
Comments