Algorithm(71)
-
프로그래머스 [자연수 뒤집어 배열로 만들기], [햄버거 만들기]
[자연수 뒤집어 배열로 만들기] 풀이 def solution(n): n = str(n) len_n = len(n) answer = [0]*len_n for i in range(len_n-1, -1, -1): answer[len_n-i-1] = int(n[i]) return answer [햄버거 만들기] 풀이 일단 문제부터 1,2,3,1에 충족이 안 되더라도 전부 저장해뒀다가 순서대로 나타나면 합치는 건 줄 알아서 헤맸다. li = [2,1,1,2,3,1,2,3,1]에서는 li[2]부터 li[5]가 포장되어 배열에서 삭제되기 때문에 li[2]와 li[6:]이 맞닿게 된다. 때문에 답은 2가 된다. 이해하고 코드를 다시 작성했는데 시간 초과다. def solution(ingredient): answer = ..
2024.04.01 -
프로그래머스 [콜라츠 추측], [크기가 작은 부분 문자열]
[콜라츠 추측]_비기너 풀이 def solution(num): answer = 0 while answer 1: if num % 2 == 0: num //= 2 else: num = num * 3 + 1 answer += 1 return answer if num == 1 else -1 [크기가 작은 부분 문자열]_미들러 풀이 t의 길이 - p의 길이 + 1개의 문자열을 t에서 추출하여 p와 비교한다. 가장 큰 자릿수부터 비교하며 t와 p가 같은 자릿수에서 대소 구분이 가능하면 break, 같은 숫자라면 다음 자릿수를 비교한다. def solution(t, p): answer = 0 p_len = len(p) for i in range(0,len(t)-p_len+1): for j..
2024.03.31 -
프로그래머스 [숫자 문자열과 영단어]
풀이 replace()를 사용하면 간단한 문제였다. 혹시 좋은 방법이 있나 다른 분들의 코드를 봤는데 대부분 유사했다. dictionary로 'zero' : '0' 과 같이 전부 저장해서 dict.items()로 for문을 순회하면서 replace()를 작성하신 분도 계셨다. def solution(s): s = s.replace('zero', '0') s = s.replace('one', '1') s = s.replace('two', '2') s = s.replace('three', '3') s = s.replace('four', '4') s = s.replace('five', '5') s = s.replace('six', '6') s = s.replace('seven', '7') s = s.repla..
2024.03.30 -
프로그래머스 [체육복]
풀이 아직 실패다. 왜 오답인지 몰라서 구글 선생님의 코드를 찾아봤는데 유사하다. 내일 다시 찾아봐야겠다. def solution(n, lost, reserve): lli = [l for l in lost if l not in reserve] rli = [r for r in reserve if r not in lost] li = [] for r in rli: if r-1 in lli and r-1 not in li: li.append(r-1) elif r+1 in lli and r+1 not in li: li.append(r+1) return n - (len(lli) - len(li)) lost를 기준으로 for문을 순회하고 lli.sort()를 추가해서 해결했다. lost=[4,2], reserve=[..
2024.03.29 -
프로그래머스 [부족한 금액 계산하기]
풀이 시그마가 떠올랐는데 공식이 생각이 안 나서 검색했다. 가우스 공식으로, (n+1)*n/2를 사용하여 풀었다. def solution(price, money, count): answer = price*(count*(count+1)/2) - money if answer
2024.03.29 -
프로그래머스 [멀리 뛰기]
풀이 피보나치 수열과 같은 식이다. 처음에 n = 1일 경우를 생각하지 않고 [0]*n을 썼다가 테스트 케이스에서 런타임 에러가 발생했다. [0]*(n+1)로 수정해서 해결했다. def solution(n): li = [0]*(n+1) li[0] = 1 li[1] = 2 for i in range(2, n): li[i] = li[i-2] + li[i-1] return (li[n-1] % 1234567)
2024.03.28