본문 바로가기
728x90

IT 이야기/알고리즘 공부29

[Programmers] 숫자 게임 [Summer/Winter Coding(~2018)] 숫자 게임 파이썬을 사용하였습니다. 주어진 두개의 리스트를 오름차순으로 정렬하고 A를 이길수 있는 B의 최소 숫자가 발견되면 패스 하는 방법으로 작성하였습니다. 예를들면 A = [1,3,5,7] B = [2,2,6,8] 을 가지고 있는데 (A,B)일때 (1,2), (3,2), (5,6), (7,8) 일때 가장 많이 이길 수 있습니다. 즉 가장 비슷한 숫자를 가지고 이겼을 때 다른 숫자를 이길 수 있을 가능성이 더 높아진다는 것입니다. 정답 코드 (코드는 간단하게 작성하였기 때문에 찬찬히 읽어보시기 바랍니다.) def solution(A, B): answer = 0 A = sorted(A) B = sorted(B) for i in A: for i2 in.. 2020. 11. 20.
[Programmers] 단속카메라 [탐욕법] 단속 카메라 파이썬을 사용하였습니다. 주어진 예시를 그림처럼 나타낼 수 있습니다. 겹치는 부분이 없는 부분은 카메라를 추가해야 합니다. 가장 왼쪽에서 출발하는 차량은 한번은 카메라에 찍혀야 하기 때문에 시작하는 차량의 범위내에 있는 차량들은 카메라를 추가하는 대상에서 제외 할 수 있습니다. (노랑, 파랑, 초록) (빨강, 노랑) 두 개의 범위로 나뉘어 집니다. 이 부분을 고민하면 알고리즘은 간단하게 구현할 수 있습니다. 정답 코드 (코드는 간단하게 작성하였기 때문에 찬찬히 읽어보시기 바랍니다.) def solution(routes): answer = 1 routes = sorted(routes,key=lambda x:x[0]) length = routes[0][1] for i in range(.. 2020. 11. 19.
[Programmers] 추석 트래픽 2018 카카오 블라인드 코딩 테스트 [2018 카카오 블라인드 코딩 테스트] 추석 트래픽 파이썬을 사용하였습니다. 정답 코드 def convert(arr1,k): get= [] for i in range(len(arr1)): m = bin(arr1[i])[2:] n = '0'*(k - len(m))+ m arr1_1 ='' for j in n: if j=='1': arr1_1 += '#' else: arr1_1 += ' ' get.append(arr1_1) return get def plus(arr1, arr2): get = [] for i in range(len(arr1)): key = arr1[i] key2 = arr2[i] value ='' for j in range(len(key)): if key[j]==' ' and key2[j].. 2020. 11. 18.
[Programmers] 주식가격 [주식 가격] https://programmers.co.kr/learn/courses/30/lessons/68646 파이썬을 사용하였습니다. 정답 코드 def solution(pri): answer = [] for i in range(len(pri)): price = pri[i] num=0 for i2 in range(i,len(pri)): if price>pri[i2]: num =i2-i break if i2==len(pri)-1 num =i2-i answer.append(num) return answer 2020. 11. 17.
728x90