Python 3

치욕스런 날코딩, 정규표현식 배워야겠다는 다짐

프로그래머스 | level 1 | Python | 신규 아이디 추천 문제 링크 def solution(new_id): new_id = new_id.lower() new_id = validateAllLetters(new_id) new_id = removeDubleDot(new_id) new_id = removeDotOfFrontAndRear(new_id) new_id = handleEmptyId(new_id) new_id = handleLongId(new_id) new_id = handleShortId(new_id) return new_id def validateAllLetters(id): new_id = "" for letter in id: if letter.isalpha() or letter.isdig..

프로그래머스 | level 1 | python | 3진법 뒤집기

프로그래머스 | level 1 | python | 3진법 뒤집기 나의 풀이 def solution(n): answer = [] while n != 0: # 3진법 적용하여 거꾸로 표현 remainder = n % 3 # 나머지 if remainder == 0: answer.append(0) else: answer.append(remainder) n = n // 3 base = 1 # 밑 sum = 0 while answer: sum += answer.pop() * base base *= 3 return sum 3진법을 다루는 간단한 문제이다. 다시 알고리즘 문제를 풀며 실력을 끌어올리리라, 다짐하며 시작했다. 안 풀어 봤던 level 1 문제를 발견해 풀었다. 편리한 언어의 대명사 파이썬이라 3진법 만드..

프로그래머스 | python | level 2 | 다리를 지나는 트럭

푸는 데 걸린 시간 → 2시간에서 3시간 사이 collections 모듈의 deque를 사용해 풀었다. 풀이는 처음에 풀지 못하고 다른 사람의 풀이를 보고 힌트를 얻었다. 하지만 특정 테스트케이스에서 계속 시간초과가 나서 풀지 못하고 있었다. 시간 초과를 어떻게 없앨까 고민하면서, 쓸데 없는 연산에 대한 통찰이 늘었다. 아무 생각 없이 쓰고 있던 sum(bridge)가 문제였다. 테스트케이스 5에서 계속 막히던 코드 from collections import deque def solution(bridge_length, weight_bridge_can_hold, truck_weights): time = 0 bridge = deque([0] * bridge_length) truck_weights = dequ..