[프로그래머스] 정렬 - 가장 큰 수(파이썬 문제 풀이)
문제 링크 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 주어진 정수를 이어 붙여 가장 큰 수를 만들어내는 문제입니다. Level2 치고는 체감 난이도가 꽤 높았던 문제인 것 같습니다! 우선 입력 데이터인 numbers의 최대 길이가 100,000인 것으로 보아 상태 트리를 이용한 모든 경우의 수를 조합하는 방법은 아니라고 생각했습니다. 1. 파이썬에서 문자형으로 된 숫자를 비교할 때 자릿수에 상관없이 앞자리가 큰 수가 큰 것이다는 점을 활용해..
2021. 3. 18.
[프로그래머스] 정렬 - K번째 수(파이썬 문제 풀이)
문제 링크 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 주어진 범위를 정렬한 뒤 K번째 수를 출력하는 문제입니다. 파이썬의 내장 함수를 사용해도 되지만 복습 차원에서 퀵 정렬을 사용해 문제를 풀이해 보았습니다 퀵 정렬을 구현하는 함수를 만들고, 입력받은 커맨드에 따라 원본 배열에서 범위를 추출하여 퀵 정렬 함수에 전달하고 정렬된 배열에서 k번 째(k-1) 데이터를 출력하도록 구성했습니다. 문제 풀이(파이썬) def Qsort(s, e): if s < e: pivot = tmp[e] pos = s for i in range(s, e): if tmp[i] < pivot: tm..
2021. 3. 17.
[ BOJ ] 백준 2805 - 나무 자르기(파이썬 문제 풀이)
문제 링크 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 이분 탐색 나무 자르기 문제 입니다. M미터의 나무의 값을 찾기위해 시작값과 끝값의 범위를 중간값을 기준으로 확장, 축소하며 M미터가 가능한 최소값을 찾았습니다. 문제 풀이(파이썬) import sys N, M = map(int, input().split()) tree = list(map(int, input().split())) res = 0 lt = 0 rt = max(tree) mid = 0 while lt+..
2021. 3. 14.