본문 바로가기

온라인 저지/프로그래머스3

[PGS/Java] 타겟 넘버 class Solution { static int answer, targetNum, numLen, arr[]; public int solution(int[] numbers, int target) { arr = numbers; numLen = numbers.length; targetNum = target; answer = 0; dfs(0, 0); return answer; } public void dfs(int cnt, int sum) { if (cnt == numLen) { if (sum == targetNum) answer++; return; } dfs(cnt+1, sum + arr[cnt]); dfs(cnt+1, sum - arr[cnt]); } } 처음에 무슨 이진트리 만들어서 dfs해보겠다고 ar.. 2022. 2. 18.
[PGS/JavaScript] 이분탐색 - 입국심사 function solution(n, times) { times.sort((a, b) => a - b); let min_time = 1, max_time = n * times[times.length - 1], mid, peopleSumEachCase; while (min_time = n) { max_time = mid - 1; } else { min_time = mid + 1; } } return max_time+1; } 그냥 느낌으로 돌려봤더니 왜 맞았지... 이진탐색 자체가 어려운 건 아닌데 logic을 다시 따져보자~ 2022. 2. 4.
[PGS/Python] 가장 큰 수 https://programmers.co.kr/learn/courses/30/lessons/42746 문제 설명 해설 주어진 숫자(0 이상의 정수) list에 있는 숫자들을 이어붙여서 만들 수 있는 숫자들 중에서 가장 큰 수를 구해주면 된다. 해설 하려고 보니 생각보다 문제 자체는 이해가 쉬운 문제라서.. numbers return [6, 10, 12] "61210" [3, 30, 34, 5, 9] "9534330" 접근법을 생각해보자면 numbers의 element들을 전부 str화 시키고 각 element의 0번 index의 값끼리 비교하고 같으면 다음 것, 다음 것... 이렇게 비교해서 큰 놈부터 앞으로 가져오면 될 것 같다! def solution(numbers): sorted1= sorted(n.. 2021. 11. 6.