[프로그래머스 LV2]이진 변환 반복, 영어 끝말잇기
문제 - programmers.co.kr/learn/courses/30/lessons/70129?language=python3
코딩테스트 연습 - 이진 변환 반복하기
programmers.co.kr
import re
def solution(s):
count, num_zero = 0, 0
while 1:
tmp = len(re.sub('[0]', '', s))
num_zero += len(s)-tmp
s = format(tmp, 'b')
count += 1
if s == '1':
break
return [count, num_zero]
regular expression과 format 을 사용하면 간단하게 풀 수 있는 문제였다.
문제 - programmers.co.kr/learn/courses/30/lessons/12981?language=python3
코딩테스트 연습 - 영어 끝말잇기
3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0]
programmers.co.kr
import collections
def solution(n, words):
info = collections.defaultdict(list)
for i in range(len(words)):
info[i%n+1].append(words[i])
for i in range(1, len(words)):
if words[i][0] != words[i-1][-1] or words[i] in words[:i]:
return [i%n+1, info[i%n+1].index(words[i])+1]
return [0, 0]
defaultdict를 사용하면 [ 번호, 차례 ]를 빠르게 가져올 수 있는 문제였다.
아, 그리고 오늘 프로그래머스 스킬 체크에서 드디어 Lv2가 됐다! Lv2 문제를 다 풀고나서 스킬 체크를 해보려고 했는데 혹시나 하고 해봤더니 생각보다 쉬워서 금방 할 수 있었다.
Lv 1 스킬체크는 무려 6달 전에 했었는데, 당시 나는 Lv 1 스킬 체크를 푸는데도 시간이 오래 걸렸고(겨우 겨우 풀었고) Lv 2는 통과하지 못했다ㅎㅎ..
하지만 오늘은 거의 망설임 없이 Lv 2 스킬 체크 문제를 풀었고 성공했다!
실패가 두려워서 도전을 하지 않으면, 그저 가능성이 있는 나로 남아있고 싶어서 아무것도 되지 못하게 된다는 것을 다시 한번 깨닫게 되는 날이었다!