알고리즘 문제 풀이
-
프로그래머스 [위클리 7주차] - 입실 퇴실알고리즘 문제 풀이 2021. 9. 14. 14:35
import java.util.Arrays; import java.util.HashMap; /** * https://programmers.co.kr/learn/courses/30/lessons/86048 * 2021-09-14 */ public class Weekly7 { public int[] solution(int[] enter, int[] leave) { /* 뒤에 들어온 사람보다 늦게 나가면 무조건 만난다. and 1, 2, 3 들어오고 3, 1, 2 로 나갈 때 2 가 1 보다 늦게 들어오고 늦게 나가지만 순서상 3이 나갈 때 까지 나갈 수 없기 떄문에 만날 수 밖에 없다. 따라서 나보다 늦게 들어온 사람이 나보다 먼저 나갈 때 그 사이에 들어온 사람은 만난다 */ // 사람 번호 to inde..
-
Codility - BinaryGap [Kotlin]알고리즘 문제 풀이 2021. 2. 23. 00:11
/* * 2021-02-22 * https://app.codility.com/programmers/lessons/1-iterations/binary_gap/ */ fun solution(N: Int): Int { val binaryString = N.toString(2) // var num = N // do { // binaryString += num % 2 // num /= 2 // } while (num != 1) // binaryString += "1" // binaryString = binaryString.reversed() val zeroList = binaryString.split("1").toMutableList() if (binaryString.last() != '1') { ..
-
프로그래머스 - 체육복[코틀린]알고리즘 문제 풀이 2021. 2. 22. 00:19
/* * https://programmers.co.kr/learn/courses/30/lessons/42862?language=kotlin * 2021-02-22 */ package study.programmers.greedy fun gymSuit(n: Int, lost: IntArray, reserve: IntArray): Int { val lostSet = lost.toMutableSet() val reserveSet = reserve.toMutableSet() // 여벌이 있는데 잃어버린 않은 사람들은 도난, 여벌 목록에서 제거 reserve.filter { lostSet.contains(it) }.forEach { reserveSet.remove(it) lostSet.remove(it) } res..
-
프로그래머스 - 도둑질 [자바]알고리즘 문제 풀이 2021. 2. 14. 21:17
/* * 2021-02-14 * https://programmers.co.kr/learn/courses/30/lessons/42897?language=java */ package study.programmers.dynamic_programming; public class Thievery { public int solution(int[] money) { // 일자로 생각하고 점화식을 만든 후 // 원형임을 고려하자 // 처음 집은 포함하지 않는 경우 int[] dp = new int[money.length]; dp[0] = 0; dp[1] = money[1]; // 처음 집을 포함하는 경우 int[] dp2 = new int[money.length]; dp2[0] = money[0]; dp2[1] = Ma..
-
프로그래머스 - 등굣길 [자바]알고리즘 문제 풀이 2021. 2. 12. 18:45
/* * 2021-02-12 * https://programmers.co.kr/learn/courses/30/lessons/42898 */ package study.programmers.dynamic_programming; public class RoadToSchool { public int solution(int m, int n, int[][] puddles) { int[][] road = new int[m][n]; // 웅덩이 초기화 for (int[] puddle : puddles) { road[puddle[0] - 1][puddle[1] - 1] = -1; } return search(m, n, 0, 0, road); } public int search(int m, int n, int x, int..
-
프로그래머스 - 정수 삼각형 [Java]알고리즘 문제 풀이 2021. 2. 12. 00:15
/* * 2021-02-12 * https://programmers.co.kr/learn/courses/30/lessons/43105?language=java */ package study.programmers.dynamic_programming; import java.util.ArrayList; import java.util.Comparator; public class IntegerTriangle { public int solution(int[][] triangle) { ArrayList prevList = new ArrayList(); ArrayList sumList = new ArrayList(); prevList.add(0); for (int[] row : triangle) { int i = 0;..
-
프로그래머스 - N 으로 표현 [코틀린]알고리즘 문제 풀이 2021. 2. 7. 20:53
처음 DP 문제를 풀어보았는데 생각하지 못한 부분들 때문에 풀이가 쉽지 않았다. 놓친 부분 NN, NNN 등 의 같은 숫자가 나열되는 부분을 생각하지 않고 사칙연산만 고려함 바로 전에 계산한 값들에 사칙연산만 했음 꼭 문자열을 이용해서 계산하지 않아도 됐음 코드 /* * 2021-02-07 * https://programmers.co.kr/learn/courses/30/lessons/42895 */ fun expressedByN(N: Int, number: Int): Int { val resultList = mutableListOf() var linearNum = 0 for (i in 0..8) { linearNum = linearNum * 10 + N val set = mutableSetOf(linea..