python 4

python 2 x n 타일링

처음에는 순열의 합으로 접근하였다. 순열의 합 코드 123456789101112def combination(n, r): c = 1 r = min(r, n-r) for i in range(1, r+1): c *= (n-i+1)/i return int(c) def solution(n): answer = 0 for i in range(int(n/2)+1): answer += combination(n-i, i) return int(answer%1000000007)cs 그러나 실행 결과도 이상하고(아직도 이유를 모르겠다. n = 16 부터 값이 1씩 작게 나옴) 대부분은 런타임 에러가 났기 때문에 이러한 접근이 아니라고 빠르게 캐치했다. 그리고 실행 결과를 쭉 보다 보니 익숙한 수열... 피보나치였다. 순열의 합..

프로그래머스 Lv2 조이스틱

분류에 그리드 알고리즘으로 되어있어서 그리드로 접근했었지만, 추가된 테스트케이스에서 그리드로 풀리지 않는 케이스들이 추가된것으로 보였다. 따라서 "알파벳을 바꾸는 움직임 + 문자열 자리를 이동하는 움직임"의 최솟값을 구하는 방법으로 바꾸었다. 12345678910111213141516171819202122232425def solution(name): answer = 0 name = list(name) max_a_len = 0 check = 0 index = 0 for n in name: if n != 'A': for i, char in enumerate(name): if char == 'A': check += 1 if check > max_a_len: max_a_len = check index = i e..

Python 배열의 특정 인덱스로 정렬

프로그래머스 '실패율' 문제에서 사용 전체 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 def solution(N, stages): answer = [] num = len(stages) st_list = [[i, 0] for i in range(1, N+2)] for stage in stages: st_list[stage-1][1] += 1 st_list.pop() for i in range(N): if num != 0: tmp = st_list[i][1] st_list[i][1] /= num num -= tmp else: break st_list = sorted(st_list, key = lambda x : (-x[1], x[0]..

python 2022.06.30