반응형

문제출처

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++로 풀면 꽤나 소스도 길어지고 빡빡했을거 같았다. 왜냐하면 숫자가 아닌 문자들을 다 제외하는 로직을 구현을 시작해야 해서 이참에 파이썬을 한번 써봤다.
왜 문자열은 파이썬을 사용하면 금방 풀 수 있다고 하는지 느꼈다.
문자열 문제에 항상 힘들어했는데 파이썬을 애용해봐야겠다

 

 

소스코드

https://github.com/sw93/algorithm/blob/master/Programmers/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4%20-%20%ED%8A%9C%ED%94%8C.py

 

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

+ Recent posts