전체 글
-
[프로그래머스] 야근 지수 Java 풀이문제풀이/프로그래머스 2021. 11. 22. 18:42
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. 문제 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다.Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴하는 함수 solution을 완성해주세요. 2. 입력 works는 길이 1 이상, 20,000 이하인 배열입니다. works의 원소는 50000 이하인 자연수입니다. n은 1,..
-
[프로그래머스] 등굣길 Java 풀이문제풀이/프로그래머스 2021. 11. 22. 00:28
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. 문제 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = 4, n = 3 인 경우입니다. 가장 왼쪽 위, 즉 집이 있는 곳의 좌표는 (1, 1)로 나타내고 가장 오른쪽 아래, 즉 학교가 있는 곳의 좌표는 (m, n)으로 나타냅니다. 격자의 크기 m, n과 물이 잠긴 지역의 좌표를 담은 2차원 배열 puddles이 매개변수로 주어집니다. 오른쪽과 아래쪽으로만 움직여 집에서 학교까지 갈 수 있는 최단경로의 개수를 1,000..
-
[프로그래머스] 정수 삼각형 Java 풀이문제풀이/프로그래머스 2021. 11. 19. 22:41
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. 문제 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 2. 입력 삼각형의 높이는 1 이상 500 이하입니다. 삼각형을 이루고 있는 숫자는 0 이상 9,999 이하의 정수입니다. 3. 예제 triang..
-
[알고리즘] Binary Search 알고리즘알고리즘 2021. 11. 18. 17:58
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. 이진 탐색이란? 이진 탐색은 알고리즘 명칭 그대로 탐색을 위한 알고리즘이다. 이진 탐색은 배열 또는 List에서 가운데 값을 기준으로 찾고자 하는 값이 큰지 작은지 판단 후 가운데 값이 찾고자 하는 값보다 작은 경우 왼쪽의 그룹을 반대로 가운데 값이 찾고자 하는 값보다 큰 경우는 오른쪽 그룹을 이용하여 다시 중간 값과 비교하는 방법으로 값을 찾는 방법입니다. ※단 이진 탐색은 가운데 값을 기준으로 작으면 왼쪽, 크면 오른쪽을 구분해야 되므로 정렬된 데이터에만 적용이 가능합니다. 2. 이진 탐색 방법 정렬된 값 {1, 4, 6, 8, 10, 15, 27, 29, 3..
-
[프로그래머스] 구명보트 Java 풀이문제풀이/프로그래머스 2021. 11. 16. 14:22
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. 문제 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다. 구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다. 사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가..
-
[프로그래머스] 튜플 Java 풀이문제풀이/프로그래머스 2021. 11. 15. 16:49
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. 문제 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다. (a1, a2, a3, ..., an) 튜플은 다음과 같은 성질을 가지고 있습니다. 중복된 원소가 있을 수 있습니다. ex : (2, 3, 1, 2) 원소에 정해진 순서가 있으며, 원소의 순서가 다르면 서로 다른 튜플입니다. ex : (1, 2, 3) ≠ (1, 3, 2) 튜플의 원소 개수는 유한합니다. 원소의 개수가 n개이고, 중복되는 원소가 없는 튜플 (a..
-
[Java] 트랜잭션프로그래밍/Java 2021. 11. 13. 00:13
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. 트랜잭션이란 트랜잭션이란 하나의 큰 작업을 수행하기 위해 작은 여러 작업들을 하나의 그룹으로 묶어 처리하는 것을 말합니다. 쉽게 말해 특정 작업을 수행하는 작업 단위를 말합니다. 작은 여러 작업들을 하나의 그룹으로 묶어 처리하는 것을 트랜잭션이라고 하였습니다. 그래서 트랜잭션은 작은 작업들이 모두 성공하거나 하나의 작은 작업이 실패하면 모두 실패하여야 합니다. 수행한 많은 작업들이 모두 성공하면 작업 결과를 저장합니다. 이를 커밋(Commit)이라고 합니다. 수행한 많은 작업들 중 하나가 실패하게 된다면 이전에 성공은 모두 무시하고 작업의 수행 전으로 상태를 모두..
-
[프로그래머스] 삼각 달팽이 Java 풀이문제풀이/프로그래머스 2021. 11. 12. 00:35
이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다. 틀리거나 잘못된 정보가 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다. 1. 문제 정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요. 2. 입력 n은 1 이상 1,000 이하입니다. 3. 예제 n result 4 [1,2,9,3,10,8,4,5,6,7] 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] ..