개발
-
프로그래머스 등굣길개발/코딩테스트 2025. 1. 11. 00:31
행 : n , 열 : m , 물이 잠긴 지역의 좌표 : puddles 1,1로 가는 경우 0,1로 간 총횟수와 1,0으로 간 총횟수를 더한 값 시작지점을 1로 설정하여 이후 값을 더함 public int solution(int m, int n, int[][] puddles) { int[][]dp = new int[n][m]; for(int[] puddle : puddles) dp[puddle[1]-1][puddle[0]-1] = -1; dp[0][0] = 1; for(int i=0; i0) dp[i][j]+=dp[i-1][j]% 1000000007; if(j>0) dp[i][j]+=d..
-
프로그래머스 정수 삼각형개발/코딩테스트 2025. 1. 5. 18:13
해석가장 왼쪽의 경우 이전 행의 가장 왼쪽의 값을 현재의 값과 합산한것이 현재의 값이 된다 가장 오른쪽의 경우 이전 행의 가장 오른쪽의 값을 현재의 값과 합산한 것이 현재의 값이 된다. 그 외의 경우 이전 행에서의 왼쪽 열의 값과 이전 행의 오른쪽 열의 값 중 큰 값을 현재의 값과 합산한 것이 현재의 값이 된다 첫번째 행의 경우 계산의 대상이 아니니 제외한다 cf) 전제가 삼각형이므로 가장 왼쪽 혹은 가장 오른쪽의 경우 행 , 열이 -1씩 줄어든다 풀이 public int solution(int[][] triangle) { int answer =0; for(int i=1; i
-
게임맵 최단거리개발/코딩테스트 2024. 12. 29. 16:24
문제 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다.cf) 문제의 양이 너무 많아서 링크로 대체 합니다. https://school.programmers.co.kr/learn/courses/30/lessons/1844 풀이 주요생각 4방향으로 이동 하여 거리를 이동하되 음수 이거나 이미 방문 했을 경우는 재방문을 하지 않는다 4방향 = { {1,0} , {0,1} , {-1,0} , {0,-1} }방문 여부 boolean[][] visited queue에 저장될 값은 해당 좌표의 위치와 현재 거리를 얼마나 이동햇는지에 대한 값이 필요하다 좌표가 마지막으로 이동하면 작업을 종료하고 해당..
-
이중우선순위큐개발/코딩테스트 2024. 12. 26. 14:13
문제이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요.조건 I 숫자 : 큐에 주어진 숫자를 삽입합니다.D 1 : 큐에서 최댓값을 삭제합니다.D -1 : 큐에서 최솟값을 삭제합니다. 풀이 for을 돌린후 I 조건이면 List에 add D이면 List의 사이즈가 있울 경우 1 , -1에 의해 List를 정렬을 한 후 첫번째 로우를 제거 만약 최종 집계에 List의 사이즈가 없으면 0 ,0 출력 List의 사이즈가 있으면 정렬하여 첫번쨰 로우 , 마지막 로우를 출력 public static int[] solution(String[] ope..
-
다리를 지나는 트럭개발/코딩테스트 2024. 12. 22. 19:07
문제 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다.예를 들어, 트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다.bridge_lengthweighttruck_weightsreturn2107,4,5,681001001010110010010,10,10,10,10,10,10,10,10,10110 풀이..
-
기능개발개발/코딩테스트 2024. 12. 17. 20:43
문제프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다.또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 풀이 앞의 개발이 완료되기 전까지 뒤의 개발은 배포 되면 안되며 앞의 개발이 완료될때 뒤의 개발도 배포가 된다 그러므로 queue에 넣어 값을 빼며 비교 대상에 다음 스텝을 ..
-
DB 인터페이스 분리개발/java 2024. 10. 28. 17:41
RDB , SNOWFLAKE , Athena 등 DB를 다양하게 사용하는 경우가 있을 수가 있다. 예를 들어 큰 DB를 읽어 오는데 부담 될때 특정 조건에 따라 RDB -> SnowFlake나 S3로 적재된 Athena를 콜 하는 방식말이다 이 경우 Mybatis를 사용하는 개발자들은 각각의 DB 정보를 이용해 Config를 등록하며 이를 mybatis sqlSessionFactory에 연결한 후 이를 특정 어노테이션을 붙이면 해당 method를 mapper.xml에 있는 method를 연결하도록 구현을 할 것 이다 예를 들어 @Athena , @Snow 라는 애노테이션을 인터페이스에 연결만 한다면 Mybatis로 연동하는 방식이다 예를 들면 @Configuration@RequiredArgsConst..
-
정규식개발/DB 2024. 10. 25. 10:39
Mysql 내 컬럼 내 특정값을 추출해야할 때가 있다.이런 경우 정규식을 이용하거나 substring_index 함수를 활용하여 값을 추출할 수 있다.예를 들어 json양식으로 된 order_json 이라는 컬럼에 데이터가 아래와 같이 들어가 있다고 가정을 해보자 {"odNo":"123123" , "odrNm":"홍길동"} 이중 주문번호에 해당하는 값만 추출을 하고 싶으면 정규식으로는 ('"odNo:"?')\("[0-9]+")을 하게 되면 "odNo:"123123"이 나오게 될 것이다 이를 다시 한번 정규 표현식을 통해 숫자부분('[0-9]')만 추출을 할 수 있다 select REGEXP_SUBSTR(REGEXP_SUBSTR(order_json,'("odNo":?)\([0-9]+)')'),'[0-..