프로그래머스(파이썬)
올바른 괄호 → 에러를 유도 + refactoring★★
나의 풀이1 def solution(s): stack=[] for i in range(len(s)): if s[i]=='(': stack.append(s[i]) elif s[0]==")": return False else: try: stack.pop() except IndexError as idx: return False if len(stack)==0: return True return False 나의 풀이2 def solution(s): stack=[] for i in range(len(s)): if s[i]=='(': stack.append(s[i]) else: try: stack.pop() except IndexError as idx: return False if len(stack)==0: retu..
최소값 만들기→ "내적"문제와 유사 + 리스트 곱하기 +zip()★★
나의 풀이 def solution(A,B): answer = 0 A.sort() B.sort(reverse=True) return sum([x*y for x,y in zip(A,B)]) ▶ zip함수를 이용하자
JadenCase 문자열 만들기 → 이상한 문자 만들기★★+교훈: 애당초 소문자로 전부 바꾸기
나의 풀이 import re def solution(s): #원본 저장용 개별 문자 리스트 a a=list(s) #모든 문자열을 소문자로 변경 (숫자나 공백은 신경 안 써도 된다.) b=s.lower() #소문자로 변경된 개별 문자 리스트 c c=list(b) c[0]=a[0].upper() for i in range(len(s)-1): #원본인 a리스트에 i번째에 공백이 있다면 if a[i]==' ': c[i+1]=a[i+1].upper() #공백이 연속되더라도 뒤쪽 공백에 아무일도 안 일어남 c="".join(c) # answer = re.sub('\s+', ' ', c) return c
햄버거 만들기→인덱스 갱신★★+뒤를 기준으로 슬라이싱 [-4: : ]
다른 사람의 풀이 1 def solution(ingredient): answer = 0 index = 0 while index < len(ingredient)-3: # 재료가 4개가 필요하기에 index가 리스트 총 길이 -3일때까지만 반복한다. if ingredient[index] == 1: # 첫 재료가 빵일때만 if ingredient[index:index+4] == [1,2,3,1]: # 4개의 재료가 햄버거 재료 순서와 맞는지 비교 del ingredient[index:index+4] # 맞으면 해당 요소들 리스트에서 제거 index = index-3 # index를 -3 요소에서부터 다시 비교하도록 조정(시간을 줄이는 핵심포인트) answer += 1 # 햄버거 카운트 continue # 다음..