def detect_diff(prev_list: list, now_list: list)->str:
for now_element in now_list:
if now_element not in prev_list:
return now_element
else:
continue
def solution(s):
answer = []
s = s[1:len(s)-1]
tuple_lst = list(s.split("},{"))
tuple_lst = [x.replace("{","") for x in tuple_lst]
tuple_lst = [x.replace("}","") for x in tuple_lst]
tuple_lst = [[len(list(x.split(","))), list(x.split(","))] for x in tuple_lst]
tuple_lst.sort()
prev_tup: list = []
for now_tup in tuple_lst:
if prev_tup == []:
tup = [int(x) for x in now_tup[1]]
answer += tup
prev_tup = tup
else:
tup = [int(x) for x in now_tup[1]]
element = detect_diff(prev_tup, tup)
answer.append(element)
prev_tup = tup
return answer
잘 짜려고 하지 말고 일단 논리를 작성해보는게 중요함을 느꼈다.
일단 짜보면 매우 쉽다고 느껴지기 때문이다.
그러나 동시에 파이썬이 아닌 자바로 풀기 위해선 문자열 클래스가 제공하는 메소드를 잘 알고 있어야 함을 느꼈다.
서로 다른 스코프에서 같이 사용하는 코드는 함수로 따로 만든다.
코드가 길어질 것 같을 때는 가독성을 위해 코드를 함수로 따로 만든다.
프로그래머스
처음에 문제를 제대로 읽지 않아서 순서를 고려하지 않고 답을 냈다.
길이 순으로 정렬하고 싶어서 리스트 안에 필요한 정보를 더 넣었는데 아래와 같이 간략하게 짤 수도 있다.
data_lst.sort(key = lambda x : len(x))
str_data_lst = ["1", "2"]
data_lst = list(map(int, str_data_lst))