문제
https://school.programmers.co.kr/learn/courses/30/lessons/64065
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
저번에 굉장히 복잡하게 풀었던 것 같은데 간단하게 풀렸다~!
주요 아이디어
처음에 문제를 읽을 때는 그냥 다 때려놓고 set하면 되는거 아니야?? 했는데.. 이 문제에는 함정이 있다.
바로 result 내의 원소 순서를 맞춰야만 정답이 된다는 것
애초에 문제 조건에도 명시되어 있다!
- 주어진 문자열 s를 2차원 리스트로 변환하기
- 원소 개수 순으로 오름차순 정렬
- 그래야 a1, a2, ... 를 구할 수 있기 때문
- 문제 조건을 다시 참조하자
- a1부터 차례대로 result 배열에 append 하기
코드 구현 (Python 3)
더보기
def solution(s):
answer = []
# 문자열 -> 2차원 리스트
s = s.replace("{{", "").replace("}}", "").replace("{", "")
s = s.split("},")
s = [x.split(",") if "," in x else [x]
for x in s]
# 원소 개수 순으로 오름차순 정렬
s.sort(key=lambda x: len(x))
# 순회하면서 하나씩 append
for x in s:
for num in x:
if int(num) not in answer:
answer.append(int(num))
return answer
제출 결과
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 등굣길 (0) | 2024.04.08 |
---|---|
[프로그래머스] 조이스틱 (0) | 2024.04.07 |
[프로그래머스] 두 개 뽑아서 더하기 (0) | 2024.04.07 |
[프로그래머스] 소수 찾기 (0) | 2024.04.07 |
[프로그래머스] 순위 검색 (0) | 2024.04.07 |