algorithm/array(2)
-
[프로그래머스] 자물쇠와 열쇠::알고리즘
열쇠를 회전하고, 이동시켜 자물쇠를 열 수 있는지 확인하는 알고리즘 열쇠의 크기(M)는 자물쇠의 크기(N) 보다 작을 수 있고, 열쇠가 자물쇠의 범위를 벗어나도 맞물리기만 하면 되므로 M - 1 + N + M - 1 = N + (M - 1) * 2 크기의 이차원 배열을 새로 만들어 줍니다. 가운데 N 자리에 lock을 복사합니다. 이차원 배열을 계속해서 복사하고, 복사된 이차원 배열에 열쇠가 한 칸씩 이동하면서 이차원 배열과 열쇠를 더해 lock 자리가 있는 곳만 모두 1인지 확인하여 true를 반환합니다. Java 코드 public class Solution_자물쇠와열쇠 { public static boolean solution(int[][] key, int[][] lock) { int M = key...
2020.06.19 -
[프로그래머스] 종이접기::알고리즘
몇 번 접는지에 따라서 펼쳤을 때, 어느 방향으로 접혔는지 이진 배열을 만들어내는 것 n = 3 일 때, n = 1 -> 0 n = 2 -> 0 0 1 n = 3 -> 0 0 1 0 0 1 1 1. n의 숫자를 보면 n - 1의 숫자가 자릿수 그대로 내려오고, 2. 반으로 접은 부분은 0이고, 3. 파란색으로 칠해진 부분의 숫자가 뒤집혀져서 넘어가는 것을 확인할 수 있다. Java 코드 import java.util.Arrays; public class Solution_종이접기 { public static int[] solution(int n) { int len = 1; int[] answer = new int[len]; for (int i = 1; i < n; ++i) { int len_temp = l..
2020.06.19