https://programmers.co.kr/learn/courses/30/lessons/64065?language=python3
코딩테스트 연습 - 튜플
"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]
programmers.co.kr
최종 코드
GitHub - hwayeon351/Programmers-Algorithms: 프로그래머스 알고리즘 소스 코드 모음
프로그래머스 알고리즘 소스 코드 모음. Contribute to hwayeon351/Programmers-Algorithms development by creating an account on GitHub.
github.com
def solution(s):
answer = []
s = s[2:-2]
ss = s.split('},{')
ss.sort(key = len)
for ns in ss:
ns = ns.split(',')
for n in ns:
if n not in answer: answer.append(n)
return list(map(int, answer))
풀이 과정
풀이 시간 28분
1.
def solution(s):
answer = []
#1. 가장 자리 {{, }} 없애기 -> ex) "{{2},{2,1},{2,1,3},{2,1,3,4}}" -> "2},{2,1},{2,1,3},{2,1,3,4"
s = s[2:-2]
#2. '},{'마다 문자열 자르기 -> ex) "2},{2,1},{2,1,3},{2,1,3,4" -> [['2'], ['2','1'], ['2','1','3'], ['2','1','3','4']]
ss = s.split('},{')
#3. 리스트 길이를 기준으로 오름차순으로 정렬하기
ss.sort(key = len)
#4. ss를 탐색하면서 answer에 없는 요소 추가하기
for ns in ss:
ns = ns.split(',')
for n in ns:
if n not in answer: answer.append(n)
return list(map(int, answer))
#시간복잡도 = O(nlogn), 공간복잡도 = O(n)
#n = len(s)
2.
def solution(s):
answer = []
#1. 가장 바깥 {} 없애기
s = s[1:-1]
#2. sets = 튜플 s의 모든 집합 구성하기
sets = []
#nset = 새로 추가될 튜플 s의 집합
nset = []
num = ""
for ss in s:
# '{'이면 다음 새로운 집합을 받아오기 위해 nset 초기화
if ss == '{': nset = []
# '}'이면 새로운 집합 nset의 마지막 원소 num을 추가하고(이때, 다음 새로운 원소를 받아오기 위해 num 초기화), sets에 nset을 추가한다.
elif ss == '}':
nset.append(int(num))
num = ""
sets.append(nset)
# ','이고 num에 원소가 있는 경우 -> ex) {1, 2} ss = ',' num = '1'
elif ss == ',':
if num != "":
#새로운 집합에 원소 num을 추가하고, num 초기화
nset.append(int(num))
num = ""
# 숫자인 경우, num에 붙여준다
else: num += ss
#3. 튜플 s의 모든 집합 sets의 집합들을 길이 순서대로 오름차순 정렬하기
sets.sort(key = len)
#4. sets의 각 집합들을 탐색하여 answer에 없는 원소가 들어있는 경우, answer에 추가하기
for t in sets:
for tt in t:
if tt not in answer:
answer.append(tt)
return answer
#시간복잡도 = O(nlogn), 공간복잡도 = O(n)
#n = len(s)
참고
- 1.크레인 인형뽑기 게임 -> https://hwayomingdlog.tistory.com/142
Level 1 크레인 인형뽑기 게임 <2019 카카오 인턴> Python 3
https://programmers.co.kr/learn/courses/30/lessons/64061?language=python3 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 pro..
hwayomingdlog.tistory.com
Level 3 불량 사용자 <2019 카카오 개발자 겨울 인턴십> Python 3
https://programmers.co.kr/learn/courses/30/lessons/64064?language=python# 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상..
hwayomingdlog.tistory.com
- 4. 호텔 방 배정 ->
- 5. 징검다리 건너기 ->2021.09.05 - [코테 노트/프로그래머스] - Level 3 징검다리 건너기 <2019 카카오 인턴십> Python3
Level 3 징검다리 건너기 <2019 카카오 인턴십> Python3
https://programmers.co.kr/learn/courses/30/lessons/64062?language=python3 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 최종 코드 GitHub -> https://github.co..
hwayomingdlog.tistory.com
'코테 노트 > 프로그래머스' 카테고리의 다른 글
Level 2 빛의 경로 사이클 Python 3 (0) | 2022.03.07 |
---|---|
Level 2 행렬 테두리 회전하기 Python 3 (0) | 2022.03.06 |
Level 4 가사 검색 <2020 KAKAO BLIND RECRUITMENT> Python 3 (0) | 2021.09.06 |
Level 3 자물쇠와 열쇠 <2020 KAKAO BLIND RECRUITMENT> Python 3 (0) | 2021.09.05 |
Level 2 괄호 변환 <2020 KAKAO BLIND RECRUITMENT> Python 3 (0) | 2021.09.05 |