본문 바로가기

코딩 테스트124

[프로그래머스] 최솟값 만들기 programmers.co.kr/learn/courses/30/lessons/12941?language=python3 코딩테스트 연습 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱 programmers.co.kr def solution(A,B): answer=0 A.sort() B.sort(reverse=True) for i in range(len(A)): answer+=A[i]*B[i] return answer 2021. 3. 22.
[프로그래머스] 피보나치 수 programmers.co.kr/learn/courses/30/lessons/12945 코딩테스트 연습 - 피보나치 수 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = programmers.co.kr def solution(n): d=[0]*(n+1) d[0]=0 d[1]=1 for i in range(2, n+1): d[i]=d[i-1]+d[i-2] return d[n]%1234567 2021. 3. 22.
[프로그래머스] 방문길이 def solution(dirs): x = 0 y = 0 dx=[0,0,-1,1] dy=[-1,1,0,0] # 상 0 하 1 좌 2 우 3 d = {"U":0, "D":1, "L":2, "R":3} visited=[] count=0 for dir in dirs: go = d[dir] nx = x + dx[go] ny = y + dy[go] if nx >= -5 and ny >= -5 and nx 2021. 3. 15.
[프로그래머스] 이진 변환 반복하기 from collections import Counter def solution(s): loop_count = 0 # 이진 변환 횟수 zero_count = 0 # 제거된 모든 0의 개수 while len(s) > 1: counter = Counter(s) one_count = counter['1'] zero_count += counter['0'] loop_count += 1 s = format(one_count,'b') result=[] result.append(loop_count) result.append(zero_count) return result s="110010101001" print(solution(s)) 2021. 3. 15.
[프로그래머스] 최댓값과 최솟값 def solution(s): array_s = list(map(int, s.split())) max_value = max(array_s) min_value = min(array_s) result = str(min_value)+" "+str(max_value) return result s="-4 -2 -1 -3" print(solution(s)) 2021. 3. 15.
[프로그래머스] 숫자의 표현 def solution(n): count=0 for i in range(1, n+1): sum=0 for j in range(i, n+1): sum+=j if sum == n: count += 1 break elif sum > n: break return count n=15 print(solution(n)) 생각보다 너무 단순해서 놀란 문제 2021. 3. 15.