본문 바로가기

Algorithm101

그리디 알고리즘(11047, 1931) [동전0 _ 11047] * 조건 각각의 금액 가치가 존재하는 동전의 종류 N개가 주어진다 동전의 가치는 오름차순 순으로 정렬되어있다 원하는 금액 K를 만들 수 있는 동전의 최소 개수를 구한다 * 알고리즘 - 최적의 상태를 발견하면 없을 때까지 계속 해당 상태를 진행: 그리디 알고리즘 * 로직(Logic) - 동전의 가치가 제일 큰 경우부터 K 금액을 나누어 몫이 존재하면 동전의 개수로 추가시켜준다 - 나머지 값을 K로 덮어준다 (해당 금액만 구하면 되니까) - 몫이 존재하지 않게되면 그 다음 동전을 선택하고 위 과정을 반복한다 import java.util.Scanner; public class Problem_11047 { public static void main(String[] args) { Sca.. 2019. 10. 29.
프로그래머스(자물쇠와 열쇠) - Java [자물쇠와 열쇠] https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr * 조건 키(M*M)와 자물쇠(N*N)가 2차원 배열로 존재한다 배열에서 값 1은 돌기이고, 값 0은 홈이다 주어진 키를 가지고(돌기) 자물쇠의 돌기 부분과 겹치지 않으면서 홈 부분에 넣을 수 있다면 true 키는 90도(시계 방향)으로 회전하여 자물쇠를 열어볼 수 있다 * 알고리즘 - 주어진 키를 통해 자물쇠를 열 수 있는지 모든 경우의 수 탐색: 브루트포스 * 로직(Logic) - 자물쇠 .. 2019. 10. 29.
프로그래머스(카카오 프렌즈 컬러링북, N으로 표현) - Java [카카오 프렌즈 컬러링북] https://programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr * 조건 2차원 배열을 위한 m, n이 주어진다. (1 2019. 10. 25.