일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- PYTHON
- backjoon
- Leet Coding Challenge
- 알고리즘문제풀이
- 독서노트
- 스위프트
- DTFT
- 컨볼루션
- 릿코드
- 코테
- 알고리즘 문제풀이
- IOS
- 파이썬
- 백준
- 프로그래머스
- 카카오 코딩테스트
- SWIFTUI
- 전자공학
- Trie
- 코딩테스트
- leet code
- 이산신호처리
- dft
- DSP
- 트라이
- 신호처리
- SWIFT
- 코테준비
- leetcode
- 알고리즘
- Today
- Total
매일 매일 성장하는 섭섭군
[Seop's의 코드풀이] 프로그래머스 튜플 (2019 카카오 개발자 겨울 인턴십 문제) Python 본문
이번에 풀어본 문제는 프로그래머스에 있는 튜플 이라는 문제입니다.
2019 카카오 개발자 인턴십을 뽑을때 코딩테스트로 진행되었던 문제인데요 한번 살펴보도록 하겠습니다.
https://programmers.co.kr/learn/courses/30/lessons/64065#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제를 정리하자면
입력은 문자열로 주어지며 문자열 안에는 중괄호로 구분되어있는 튜플이 존재합니다.
튜플의 각 원소들이 위의 문제의 규칙에 따라서 어떤 순서로 이루어지는 알아내면 됩니다.
예를들어 (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 |