Programmers56 프로그래머스(올바른 괄호의 개수, 줄 서는 방법) - Java [올바른 괄호의 개수] https://programmers.co.kr/learn/courses/30/lessons/12929 코딩테스트 연습 - 올바른 괄호의 갯수 올바른 괄호란 (())나 ()와 같이 올바르게 모두 닫힌 괄호를 의미합니다. )(나 ())() 와 같은 괄호는 올바르지 않은 괄호가 됩니다. 괄호 쌍의 개수 n이 주어질 때, n개의 괄호 쌍으로 만들 수 있는 모 programmers.co.kr * 조건 괄호에 대한 쌍의 개수(n)이 주어진다 올바른 괄호 형태로 만들 수 있는 경우의 수를 출력한다 * 알고리즘 DP * 로직 n이 하나씩 증가된다는 것은 ( )를 중심으로 크게 2가지 경우를 나눌 수 있다 괄호 안에 들어가는 경우 ex. (0) 괄호 밖에 있는 경우 ex. ( )0, 0( ) ex.. 2019. 12. 30. 프로그래머스(외벽 점검) - Java [외벽 점검] https://programmers.co.kr/learn/courses/30/lessons/60062 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr * 조건 외벽의 길이(n)이 주어진다 취약점의 위치(weak[])가 주어진다 점검이 가능한 각각 친구들의 시간(dist[])이 주어진다 친구들을 모두 투입해도 모두 점검이 불가능하다면 -1을 리턴한다 * 알고리즘 브루트 포스 * 로직 점검이 가능한 친구들의 시간을 순열을 활용해 경우의 수를 고려한다 각 경우의 수가 존재할 때 점검이 가능한지 판단한다 취약점의 첫 번째 인덱스부터 출발점이라고 생각.. 2019. 12. 9. 알고리즘(도둑질) * 조건 각각의 집들과 집에 존재하는 돈이 주어진다(money[]) 도둑은 인접한 집들은 털수 없다 훔칠 수 있는 돈의 최댓값을 구한다 * 알고리즘 DP * 로직 첫 번째 집부터 털이를 시작하는 경우 -> 마지막 집은 털 수 없음(인접) dp_first[0] = money[0], dp_first[1] = money[0] -> 인접하기 때문에 첫 번째 집을 털은 경우가 더 큼 dp_first[i] : i번째 집까지 훔칠 수 있는 돈의 최댓값을 갱신한다 현재 집(i)을 털게 된다면 -> 이전에 인접하지 않은 집까지의 최댓값 + 현재 집의 돈 털지 않는다면 -> 이전에 인접한 집까지의 최댓값 위 두가지 중 큰 값을 넣어준다 첫 번째 집부터 털이를 시작하지 않는 경우 -> 마지막 집을 털 수 있음 dp_seco.. 2019. 12. 2. 이전 1 ··· 11 12 13 14 15 16 17 ··· 19 다음