FROM ubuntu:22.04RUN apt-get update && apt-get install -y \ openjdk-17-jdk \ wget \ gnupg \ && wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \ && if [ "$(uname -m)" = "aarch64" ]; then \ echo "Using Chromium for ARM64"; \ apt-get install -y chromium; \ else \ echo "Using Google Chrome for x86_64"; \ echo "deb [..
https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 접근 방법문제를 읽으며, 일반 적인 브루트포스 기반의 구현을 생각했지만, 데이터의 크기 상 불가능했다.다른 방법을 시도했으나 시간 초과였고, 결국 해설을 읽고 문제를 풀었다. 해설에서는 누적합을 기반으로 문제를 해결했다.skill 배열을 순회하며 board에 적용할 마스크를 만들고 마지막에 더해주는 방법이다.1차원 배열에서 마스크를 만드는 방법[1,3,5,23,5,9]의 배열에서 1 ~ 3번 원소에 -4, 0 ~ 5번 원소에 +2를 한다고 가정..
https://school.programmers.co.kr/learn/courses/30/lessons/67259?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr접근 방법보드의 크기 n 이 25이하이고 입력에서 걱정할 부분이 없기때문에 BFS를 생각했다.BFS를 하며 Cost를 기록하고, 이를 활용해서 최소값만을 계산하려고했다.하지만 문제가 있었다.(1,0)에서 2000코스트이고, (1,1)으로 직진 후 아래로 코너를 돈다(0,1)에서 1700코스트이고, (1,1)으로 아래로 코너를 돈 후 직진을 한다위 두가지 경우에서 1번이 (1,1)에 2100, 2번에 (1,1)이 2400코..
0. 들어가며테스트 환경을 구축할 수 있는 오픈소스 Testcontainers에 대하여 알아보겠습니다. 1. Testcontainers란?Java, go 등 여러 언어에서 사용할 수 있는 Test 환경 구성 오픈소스입니다.프로젝트 유닛, 통합 테스트를 진행할때 DBMS, Kafka, Nginx등의 외부 서비스와는 격리하여 테스트를 작성하는 경우가 많습니다.테스트를 하더라도, test 수행으로 인해 환경이 오염되고 깨지는 문제가 발생할 수 있죠.예를 들어 운영 환경에서, Postgre SQL을 쓰지만 test 환경에서 인메모리 H2 Database를 사용할 수 있는데, 이는 정확한 환경 일치라고 할 수 없습니다. 개발자 입장에서 PostgreSQL의 새롭고 좋은 기능을 발견해도, H2 Database에 구..
https://school.programmers.co.kr/learn/courses/30/lessons/132266 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr접근 방법임의의 노드에서 도착지까지의 최단거리를 구하면되므로 BFS를 떠올렸다.도착지를 기준으로 n개의 노드를 distMap에 기록하며 거리를 계산하고 출력했다.코드import java.util.*;class Solution { public int[] solution(int n, int[][] roads, int[] sources, int destination) { List> graph = new ArrayList(); ..
https://school.programmers.co.kr/learn/courses/30/lessons/12904 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 접근 방법팰린드롬이 되는 경우는 2가지가 있다.aaabbbaaacbbb위처럼 중간에 하나의 문자는 끼어있어도 팰린드롬 수이이다.따라서 s를 선형탐색하며 팰린드롬을 찾는 find함수를 실행했다.문자열 s범위내이고, l,r 포인터의 문자가 같을경우 좌우로 퍼져가며 탐색l,r 포인터가 한번 더 진행하므로 r-l+1-2 => r-l-1이 해당 팰린드롬 수의 길이가 된다.전역변수 ans를 대소비교를 통해 갱신한다코드class Solution{ in..