반응형
문제출처
https://programmers.co.kr/learn/courses/30/lessons/64065
코딩테스트 연습 - 튜플
"{{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
문제풀이
1. ",{" 기준으로 문자열을 잘라 집합을 구한 후 집합의 크기를 기준으로 정렬한다.
2. i번째 집합에 속해있는 숫자묶음을 추출한뒤 answer 리스트에 없는 숫자만 추가해주면 된다.
c++로 풀면 꽤나 소스도 길어지고 빡빡했을거 같았다. 왜냐하면 숫자가 아닌 문자들을 다 제외하는 로직을 구현을 시작해야 해서 이참에 파이썬을 한번 써봤다.
왜 문자열은 파이썬을 사용하면 금방 풀 수 있다고 하는지 느꼈다.
문자열 문제에 항상 힘들어했는데 파이썬을 애용해봐야겠다
소스코드
sw93/algorithm
problem solve. Contribute to sw93/algorithm development by creating an account on GitHub.
github.com
import re
def solution(s):
answer = [] # 정답
numberSet = s.split(',{') # 집합을 구함
numberSet.sort(key = len) # 집합 크기를 기준으로 정렬
for i in numberSet :
number = re.findall("\d+", i) # 숫자묶음을 추출
for j in number :
if int(j) not in answer :
answer.append(int(j))
return answer
반응형
'Algorithm' 카테고리의 다른 글
[BOJ 2178] 미로 탐색 (0) | 2020.05.18 |
---|---|
[BOJ 4963] 섬의 개수 (0) | 2020.05.18 |
[BOJ 1107] 리모컨 (0) | 2020.05.15 |
[BOJ 3085] 사탕 게임 (0) | 2020.05.14 |
[BOJ 17143] 낚시왕 (0) | 2020.05.13 |