본문 바로가기

프로그래머스14

[프로그래머스] 큰 수 만들기 (Level 2) programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr [프로그래머스] 큰 수 만들기 (Level 2) 그리디 문제 number string에서 k개의 숫자를 제거했을 때 가장 큰 수를 만드는 문제 k가 남아있다면, 자신보다 작은 앞의 숫자는 모두 지워준다. k가 남아있지 않다면, 남은 숫자를 다 붙여주고 -number : "1231234" -k : 3 -answer : "3234" stack [ ] ['1'] ['2'] ['3'] ['3','1'] ['3','2'] ['3','2','3','4'] k 3 3 2 1 1 0 모든 숫자를 다 탐색했지만, k가 남아 있을 경우, 뒤에서 k만큼 숫자를 잘라준다. .. 2021. 4. 21.
[프로그래머스] 입국심사 (Level 3) programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr [프로그래머스] 입국심사 (Level 3) 이분탐색 문제 이분탐색 문제는 풀 때마다 떠올리기가 쉽지 않은것 같다. 조금 더 연습이 필요하다. 이 문제는 answer 값, 모든 사람이 입국 심사를 받을 때 걸리는 시간을 이분탐색 값으로 설정한다. 풀이 방법을 떠올리면 코드는 간단하다. def solution(n, times): answer = 0 left, right = 1, n.. 2021. 4. 20.
[프로그래머스] N으로 표현 (LEVEL 3) programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr [프로그래머스] N으로 표현 (LEVEL 3) 동적 프로그래밍 문제. 쉽게 생각했는데 생각보다 고민한 문제. 처음에는 dp[n] = dp[n-1] + ['+N', '-N', '/N', '*N'] 계산을 한 결과만 구해나가면 될줄 알았지만, dp[n] = dp[i] + dp[n-i]; i : 1~n-1 라고 생각하고 풀어야한다. 조건이 많아서(max deep이 8) DFS로 풀어도 시간초과가 나지 않고 풀리긴 한다. def solution(N, number): adds= lambda x,y: map(int,[x+y,x-y,x/y,x*y]) dp = [0] .. 2021. 4. 18.
[프로그래머스] - 사칙연산 (LEVEL 4) 프로그래머스 사칙연산 파이썬 programmers.co.kr/learn/courses/30/lessons/1843?language=python3 코딩테스트 연습 - 사칙연산 ["5", "-", "3", "+", "1", "+", "2", "-", "4"] 3 programmers.co.kr 숫자와 '+', '-'만 있는 연산에서 결합 법칙이 성립하지 않는 '-'에 대해 연산 순서에 따른 결과의 최댓값을 출력하는 문제 1. 연산 f의 최댓값을 구해야 한다 2. f가 덧셈만으로 이루어져 있을 경우 순서 그대로 연산하면 되기 때문에 return eval(f) 3. f = f(x)-f(y)일 때, 최댓값은 min(f(y))인 경우 4. f = f(x)-f(y) = f(x) - (y - f(z)) 일 때, 최댓값.. 2021. 3. 19.