일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- backjoon
- 스위프트
- SWIFTUI
- 알고리즘 문제풀이
- 릿코드
- 알고리즘
- DTFT
- dft
- Trie
- 카카오 코딩테스트
- 파이썬
- 신호처리
- 이산신호처리
- leet code
- 알고리즘문제풀이
- 코테
- Leet Coding Challenge
- 프로그래머스
- DSP
- 전자공학
- 코테준비
- 코딩테스트
- 트라이
- IOS
- 백준
- SWIFT
- leetcode
- 독서노트
- 컨볼루션
- PYTHON
Archives
- Today
- Total
매일 매일 성장하는 섭섭군
[Seop's의 코드풀이] 프로그래머스 튜플 (2019 카카오 개발자 겨울 인턴십 문제) Python 본문
반응형
이번에 풀어본 문제는 프로그래머스에 있는 튜플 이라는 문제입니다.
2019 카카오 개발자 인턴십을 뽑을때 코딩테스트로 진행되었던 문제인데요 한번 살펴보도록 하겠습니다.
https://programmers.co.kr/learn/courses/30/lessons/64065#
문제를 정리하자면
입력은 문자열로 주어지며 문자열 안에는 중괄호로 구분되어있는 튜플이 존재합니다.
튜플의 각 원소들이 위의 문제의 규칙에 따라서 어떤 순서로 이루어지는 알아내면 됩니다.
예를들어 (2,1,3,4) 튜플의 경우에는 {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}} 이렇게 표현 할 수 있습니다.
즉 문자열로 주어진 튜플의 길이의 경우에 따라서 살펴본다면
튜플의 길이 | 포함 될 수 있는 원소들 |
1 | 2 |
2 | 2, 1 |
3 | 2,1,3 |
4 | 2,1,3,4 |
튜플의 길이에 따라 올 수 있는 원소는 정해져 있습니다.
저는 딕셔너리를 다음과 같이 만들어 보았습니다.
ans_dict = { (해당원소): (해당원소가 포함되며 가장 적은 길이의 튜플 길이)}
이러한 방식으로 딕셔너리를 만들고 적재해보면 다음과 같은 결과가 나옵니다.
{2: 1, 1: 2, 3: 3, 4: 4}
즉 value 값에 해당하는 것이 우리가 찾고자 하는 튜플 원소의 순서 입니다.
혹시 더 좋은 방법을 알고 계신 분이 계시다면 피드백 해주시면 감사할 것 같습니다.
감사합니다.
전체 코드는 다음과 같습니다.
def solution(s):
answer = []
num_list = []
buf = ""
index = 0
# 처리하기 쉽게 list로 만들어 놓는 작업
for i in range(1, len(s)-1 ) :
if s[i] == "{" :
index = i+1
elif s[i] == "}" :
buf = s[index : i]
num_list.append(list(map(int, buf.split(","))))
buf = ""
# dict 형식으로 만들어 해당하는 숫자가 어느 위치에 있는지 확인
ans_dict = dict()
for i in num_list :
for j in i :
if j in ans_dict :
if ans_dict[j] > len(i) :
ans_dict[j] = len(i)
else :
ans_dict[j] = len(i)
# ditc 를 value 값을 기준으로 정렬하여 정답에 적재하는 작업
buf = sorted(ans_dict.items(), key= lambda x: x[1])
for i in buf :
answer.append(i[0])
return answer
반응형
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[Seop's의 코드풀이] 프로그래머스 최고의 집합 - Python (0) | 2020.08.19 |
---|---|
[Seop's의 코드풀이] 프로그래머스 실패율 (2019 KAKAO BLIND RECRUITMENT) - Python (0) | 2020.05.12 |
[Seop's의 코드풀이] 프로그래머스 불량사용자 - Python (0) | 2020.05.06 |
[Seop's의 코드풀이] 프로그래머스 2018 KAKAO BLIND RECRUITMENT [1차] 다트게임 - Python (0) | 2020.05.03 |
[Seop's의 코드풀이] 프로그래머스 문자열 압축(2020 KAKAO BLIND RECRUITMENT) - Python (0) | 2020.04.23 |
Comments