728x90

Total

728x90

    등굣길 (DP)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(m, n, puddles): d = [[0]*(m+1) for _ in range(n+1)] for i, j in puddles: d[j][i] = 1 d[0][1] = 1 for i in range(1, n+1): for j in range(1, m+1): if d[i][j]==1: d[i][j] = 0 else: d[i][j] = (d[i-1][j]+d[i][j-1]) % 1000000007 return d[n][m]

    숫자 변환하기 (DP)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import sys INF = sys.maxsize def solution(x, y, n): answer = 0 dp = [INF] * (y+1) dp[x] = 0 for i in range (x, y+1): if dp[i] == INF: continue if i + n

    카펫

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(brown, yellow): s = brown+yellow for i in range(1,s//2): if s%i==0: if i2: if (s//i-2)*(i-2)==yellow: return [s//i,i] def solution(brown, yellow): s = brown+yellow for i in range(1, int(yellow**(1/2))+1): if yellow % i == 0: if 2*(i + yellow//i) == brown-4: return [yellow//..

    줄 서는 방법 (팩토리얼, 순열)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 사람의 수 n과, 자연수 k가 주어질 때, 사람을 나열 하는 방법을 사전 순으로 나열 했을 때, k번째 방법을 반환 [1722번] 순열의 순서 구하기(수학, 구현) 1722번: 순열의 순서 첫째 줄에 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄의 첫 번째 수는 소문제 번호이다. 1인 경우 k(1 ≤ k ≤ N!)를 입력받고, 2인 경우 임의의 순열을 나타내는 N개의 수를 입력받는다. N karla.tistory.com 풀이 def solution(n, k): answer = [] fList = [0] ..

    행렬의 곱셈

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(arr1, arr2): answer = [[0]*len(arr2[0]) for _ in range(len(arr1))] for i in range(len(arr1)): for j in range(len(arr2[0])): for k in range(len(arr1[0])): answer[i][j] += arr1[i][k] * arr2[k][j] return answer def solution(arr1, arr2): return [[sum(a*b for a, b in zip(A_row,B..

    스티커모으기 (DP)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 인접된 스티커 붙일 수 없음 첫번째 스티커 붙이냐 안붙이냐 두가지 DP 리스트 구하기 풀이 def solution(sticker): if len(sticker) == 1: return sticker[0] dp = [0 for _ in range(len(sticker))] dp[0] = sticker[0] dp[1] = sticker[0] for i in range(2, len(sticker) - 1): dp[i] = max(dp[i-2] + sticker[i], dp[i-1]) dp2 = [0 for _..

    n^2 배열 자르기

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 전체 배열을 만들면 시간초과 (1 ≤ n ≤ 107) n=3 left=2 right=5 1 2 3 2 2 3 3 3 3 (0,0) (0,1) (0,2) (1,0) (1,1) (1,2) (2,0) (2,1) (2,2) max(0/3, 0%3) max(1/3, 1%3) max(2/3, 2%3) max(3/3, 3%3) max(4/3, 4%3) max(5/3, 5%3) max(6/3, 6%3) max(7/3, 7%3) max(8/3, 8%3) 풀이 def solution(n, left, right): answ..

    연속 부분 수열 합의 개수 (원형 수열)

    프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(elements): n=len(elements) s=set(elements) for i in range(1, n+1): for j in range(n): if i+j < n: s.add(sum(elements[j:j+i])) else: s.add(sum(elements[j:]) + sum(elements[:i+j-n])) return len(s) def solution(elements): n = len(elements) elements = elements*2 s = set() for i..

    예상 대진표 (XOR 연산, bit_length)

    [1057] 토너먼트 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 karla.tistory.com import math def solution(n,a,b): # a, b 를 xor 취하는 과정에서 ab 사이의 거리가 가까우면 상위비트는 차이가 나지않음 # 거꾸로 ab 사이의 거리가 멀면 상위비트가 차이남 return ((a-1)^(b-1)).bit_length()

    점프와 순간 이동 (이진수 변환)

    분석 1칸만 이동한다면 2,4,8,16,32,64,...칸은 건전지 사용 없이 이동 가능 2로 나누어 떨어지면 건전지 없이 이동, 나누어 떨어지지 않으면 건전지 사용 풀이 def solution(n): cnt=0 while n!=0: if n%2==0: n/=2 else: n-=1 cnt+=1 return cnt 이진수로 변환 후 1의 개수 카운트 (나머지가 있을 때 1이므로) def solution(n): return bin(n).count('1')