코딩테스트 연습 - 튜플 | 프로그래머스 스쿨 (programmers.co.kr)
나의 풀이
def solution(s):
result=[]
s=s[2:-2]
s=s.split('},{')
s.sort(key=lambda x: len(x))
for i in range(len(s)):
if ',' not in s[i]:
result.append(int(s[i]))
else:
for j in s[i]:
if j not in s[i-1] and j!=',':
result.append(int(j))
return result
튜플의 각 요소가 한 자리 수일 때만 적용되는 코드라 테스트 3에서 실패한 것 같다
모범 답안
def solution(s):
answer = []
s = s[2:-2]
s = s.split("},{")
s.sort(key = len)
for i in s:
ii = i.split(',')
for j in ii:
if int(j) not in answer:
answer.append(int(j))
return answer
문제를 풀면서 쉼표를 기준으로 split를 한 번 더 사용하는 것도 생각을 했었는데 그렇게 되면 2차원 배열로 접근하게 되어 더 복잡하게 풀릴 것이라고 생각했다. 하지만 2차원 배열이 아닌 split(',') 한 값을 바로 for문을 이용해 각 요소에 접근할 수 있었다.
★ 알게된 점
1. 길이를 기준으로 정렬할 때 sort(key = len)으로 간단히 표현할 수 있다.
2. split()으로 나눈 값을 담지 않고 바로 for문을 이용해 각 요소에 접근할 수 있다.
'코딩테스트 > programmers (python)' 카테고리의 다른 글
Programmers / 2단계 / k진수에서 소수 개수 구하기 / python / 2018 KAKAO BLIND RECRUITMENT (0) | 2024.02.17 |
---|---|
Programmers / 2단계 / [1차] 뉴스 클러스터링 / python / 2018 KAKAO BLIND RECRUITMENT (1) | 2024.02.17 |
Programmers / 2단계 / 모음사전 / python (1) | 2024.02.13 |
Programmers / 2단계 / 타겟 넘버 / python (0) | 2024.02.13 |
Programmers / 2단계 / 캐시 / python (0) | 2024.02.13 |