[Programmers] 컨트롤 제트 (pop(), append() 사용) source: https://school.programmers.co.kr/learn/courses/30/lessons/120853 result 를 빈 리스트로 선언하고, pop 함수의 특징을 이용하면 간단하게 풀 수 있다. def solution(s): result = [] for i in s.split(' '): if i == 'Z': result.pop() else: result.append(int(i)) return sum(result) Algorithm/Programmers 2023.02.14
[Programmers] 문자열 밀기 (리스트 슬라이싱, insert(),pop(), deque , find() 사용별 4가지 답안) source : https://school.programmers.co.kr/learn/courses/30/lessons/120921 Algorithm/Programmers 2023.02.14
[Programmers] 외계어 사전 (sorted() 정렬, set 자료구조, if not 사용 답안) source: https://school.programmers.co.kr/learn/courses/30/lessons/120869 1. sorted() 사용 def solution1(spell, dic): for d in dic: if sorted(d) == sorted(spell): return 1 return 2 2. set 사용 (if not x 참고: https://thecoollife.tistory.com/20 ) def solution2(spell, dic): spell = set(spell) for d in dic : if not spell - set(d): #0이면 return 1 return 2 Algorithm/Programmers 2023.02.08
[Programmers] 영어가 싫어요 (딕셔너리,정규표현식/ replace() 사용별 답안) source: https://school.programmers.co.kr/learn/courses/30/lessons/120894 1. 딕셔너리와 정규표현식 사용 import re def solution1(numbers): s = '' d = {'zero':'0', 'one':'1', 'two':'2', 'three':'3', 'four':'4', 'five':'5', 'six':'6', 'seven':'7', 'eight':'8', 'nine':'9'} #findall()-정규식과 매칭되는 모든 문자열을 리스트 형식으로 리턴 findall(r'패턴문자열', 문자열) for i in re.findall(r'(zero|one|two|three|four|five|six|seven|eight|nine)',nu.. Algorithm/Programmers 2023.02.08
[Programmers] 진료 순서 정하기 (list comprehension , lambda 사용별 답안) source: https://school.programmers.co.kr/learn/courses/30/lessons/120835 idea: list comprehension , lambda 1. list comprehension def solution1(emergency): sorted_emergency = sorted(emergency, reverse = True) return [sorted_emergency.index(i) + 1 for i in emergency] 2. lambda def solution2(emergency): sorted_emergency = sorted(emergency, reverse = True) return list(map(lambda x: sorted_emergency... Algorithm/Programmers 2023.02.07
[Programmers] 잘라서 배열로 저장하기 (f-string, 정규표현식/ list comprehension 사용별 답안) source: https://school.programmers.co.kr/learn/courses/30/lessons/120913 자바에서 정규표현식은 보통 이메일이나 전화번호와 같은 값을 객체에 저장할 때 사용했는데, 구글링하면 정리된 자료가 많아 대부분 긁어서 사용했습니다. 파이썬의 정규표현식 중 메타언어가 뭔지, f-string이 뭔지 추가로 알 수 있어서 좋았던 문제입니다. 1.f-sting, 정규표현식 사용 import re def solution(my_str, n): p = re.compile(f'.{{1,{n}}}') return p.findall(my_str) 2. list comprehension 사용 def solution2(my_str, n): return [my_str[i: i + .. Algorithm/Programmers 2023.02.06
[Programmers] 한 번만 등장한 문자 (list comprehension, Collections.Counter() 사용별 답안) 중복제거니까 set을 쓸까하다가, 순서가 ordered 되어야하니 패스. Collection 라이브러리의 orderDict이 중복제거 시 성능이 좋길래 무턱대고 써 from collections import OrderedDict def solution(s): answer= ''.join(sorted(list(OrderedDict.fromkeys(s)))) if len(answer) == 0: return '' else: print(answer) 당연히 안됩니다.. 매개변수 s가 "abcabcadc" 라면 "d"를 리턴해야하는데 위의 코드는 "abcd"를 리턴한다. 그럼 어떻게 풀어야하나. 1) 리스트 컴프리헨션 2) Collections의 counter 두가지로 풀어보자. 1) list comprehen.. Algorithm/Programmers 2023.02.06
[Programmers] 중복된 문자 제거 def solution(my_string): ''' source: https://school.programmers.co.kr/learn/courses/30/lessons/120888 ''' return ''.join(dict.fromkeys(my_string)) idea: - 중복된 문자를 제거한다 -> set - 순서를 지키면서 합칠 수 있는 것 -> 딕셔너리 사용 여기서는 dict.fromkeys(순회할 자료, 키에 매핑될 값) 사용 -> 키는 중복을 허용하지 않고 순서를 지킴 -> 키에 매핑될 값은 생략 가능함 Algorithm/Programmers 2023.02.01
[Programmers] 369게임 (str.count(),lambda,filter,정규표현식 사용한 풀이) import re def solution1(order): ''' source: https://school.programmers.co.kr/learn/courses/30/lessons/120891 idea: 1. count() 를 이용하여 풀기 (solution1) 2. lambda() 사용 (solution2) 3. filter() 사용 (solution3) 4. 정규표현식의 findall() 사용 (solution4) ''' answer = 0 order = str(order) answer += order.count('3') answer += order.count('6') answer += order.count('9') return answer def solution2(order): order = st.. Algorithm/Programmers 2023.02.01
[Programmers] 외계행성의 나이 def solution(age): planet = 'abcdefghij' return ''.join(list(map(lambda x: planet[int(x)], str(age)))) source: https://school.programmers.co.kr/learn/courses/30/lessons/120834 + 이 문제 풀면서 python lambda, map 개념과 친해져서 뿌듯하다! map이면 당연히 자바의 key,value 형태의 자료구조일거라고 착각하고 왜 람다를 map에 담을까.. 고민하느라 시간보냄😅 Algorithm/Programmers 2023.01.27