algorithm(9)
-
[프로그래머스] 종이접기::알고리즘
몇 번 접는지에 따라서 펼쳤을 때, 어느 방향으로 접혔는지 이진 배열을 만들어내는 것 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 -
[프로그래머스] [1차] 추석 트래픽::알고리즘
순서대로 입력되는 시간 값을 보고 언제 가장 많이 겹치는지 계산하는 문제 1초 간격으로 계산하기 때문에 처음 입력 시간을 받을 때, 처음 비교 시간 -1초, 나중 비교 시간 +1초를 해주고, count 해주었습니다. 배열의 크기는 트래픽 도착 시간이 순차적으로 들어오기 때문에 (가장 나중에 들어온 시간 + 1) - (가장 먼저 들어온 시간 - T의 최댓값 - 1)으로 계산했습니다. ex) lines = { "2016-09-15 01:00:04.001 2.0s", "2016-09-15 01:00:07.000 2s" } 일 때, "2016-09-15 01:00:04.001 2.0s"는 2016-09-15 01:00:04.001 - 2.0s - 1s = 2016-09-15 01:00:01.002부터 2016-..
2020.06.17 -
[프로그래머스] 단어 변환(DFS)::알고리즘
목표: begin 단어로 시작해서 철자 1개만 변형시켜서 target 단어까지 만들어 내는 것 words에 있는 단어들을 사용해야 한다. ex1) begin = "hit" target = "cog" words = "hot", "dot", "dog", "lot", "log", "cog" 정답 : hit -> hot -> dot -> dog -> cog 0 1 2 3 4 => return 4 public int answer; public boolean[] v; public void dfs(String begin, String target, String[] words) { if (begin.equals(target)) { int cnt = 0; for (int i = 0; i < words.length; ++..
2020.06.13