"꾸준하고 완벽한 한 걸음"

분류 전체보기 841

[백준 15780] 멀티탭 충분하니? [Java]

문제https://www.acmicpc.net/problem/15780 풀이K개의 멀티탭으로 N명이 모두 코드를 꽂을 수 있는지 확인하는 문제다.멀티탭에 코드를 연속으로 꽂으면 안되기 때문에 멑티탭 2구당 1명만 꽂을 수 있다.이를 멀티탭 길이에 맞게 계산하면 된다. // Solve for (int a : A) { N -= (a + 1) / 2; }만약 N이 0이하라면 N명은 모두 코드를 꽂았다는 것을 의미한다. // Output System.out.println(N 풀이 시간≤ 2m소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judg..

[백준 02121] 넷이 놀기 [Java]

문제https://www.acmicpc.net/problem/2121 풀이N개의 점에 대해 x, y 축에 평행하는 직사각형의 수를 찾는 문제다.좌표를 한 쌍으로 묶어 집합에 넣어주고, Set set = new HashSet(); for (int i = 0; i 문제의 조건에 부합하는 좌표와 일치하는지 비교하는 방식으로 풀이했다. long cnt = 0; for (Point p : set) { if (set.contains(new Point(p.x + A, p.y)) && set.contains(new Point(p.x, p.y + B)) && set.contains(n..

[Cloud Native] Chapter 1. 클라우드 네이티브 소개 - 정리⭐

📢 개발자가 클라우드에서 개발을 시작할 때 다음과 같은 어려움에 직면한다.1. 분산 시스템의 이해2. 새로운 기술(컨테이너와 함수)의 이해3. 클라우드 네이티브 앱 개발 시 사용하는 패턴에 대한 이해클라우드 네이티브 애플리케이션과 환경을 이해하는데 필요한 기본 개념과 가정을 살펴보자.목차분산 시스템분산 시스템의 오류CAP 이론12요소 앱가용성과 서비스 수준 협약서1️⃣ 분산 시스템분산 시스템(Distributed System)이란?개별 컴퓨터들이 네트워크로 연결되어 하나의 컴퓨터로 보이는 시스템분산 시스템을 사용하는 이유안정성, 신뢰성, 경제성 측면에서 유리하기 때문✅ 분산 시스템의 오류분산 시스템에 알아가기 전에 반드시 알아야 하는 잘못되거나 근거 없는 가정에 대해 알아보자네트워크는 안정적이다(?)서..

Dev 2025.04.17

[백준 11663] 선분 위의 점 [Java]

문제https://www.acmicpc.net/problem/11663 풀이N개의 점으로 이루어진 선분에서 M개의 부분 선분 범위에 해당하는 점의 수를 세는 문제다.부분 선분의 범위를 각각 하한선과 상한선으로 원래 선분에서 이분 탐색을하면 된다. // Solve Arrays.sort(A); while (M-- > 0) { input = br.readLine().split(" "); sb.append(upperBound(Integer.parseInt(input[1])) - lowerBound(Integer.parseInt(input[0]))).append("\\n"); }풀이시간≤ 10m소스코드https://githu..

[백준 27376] 참살이길 [Java]

문제https://www.acmicpc.net/problem/27376 풀이구현 시뮬레이션에 시간도 계산해야 하는 문제라 난이도에 비해 까다로웠다.0에서 N까지 1씩 이동해야 하며, k개의 신호등이 초록불일 때만 이동하는 문제다.신호등의 위치가 순서대로 주어지는 보장이 없으니 입력받은 신호등 정보를 좌표 기준으로 오름차순 정렬하자. List list = new ArrayList(); for (int i = 0; i a[0]));정렬된 신호등까지는 1씩 이동한다. 마지막 위치에서 신호등 위치까지의 거리를 이용해 한 번에 계산하자. long time = 0, lastPos = 0; for (int[] info : list) { final..

[백준 10844] 쉬운 계단 수 [Java]

문제https://www.acmicpc.net/problem/10844 풀이정수 N이 주어졌을 때, 길이가 N인 수 중 문제에 주어진 ‘계단 수’가 몇 개 인지 알아내는 문제다.우선 N이 1일 때 존재하는 계단 수는 1 ~ 9이다. int[][] dp = new int[N + 1][11]; for (int j = 1; j N이 2일 때는 이전 계단 수에서 1을 더하거나 뺀 값들이 새로운 계단 수가 된다.따라서 점화식을 다음과 같이 정의할 수 있다.dp[i][j] : 길이가 i이면서, 마지막 숫자가 j로 끝나는 계단 수dp[i][0]은 dp[i - 1][1]에서 1을 뺀 결과이고, dp[i][9]는 dp[i - 1][8]에서 1을 더한 값이다. for (int i = ..

[백준 15658] 연산자 끼워넣기 (2) [Java]

문제https://www.acmicpc.net/problem/15658 풀이배열 A에 대해 주어진 연산자를 활용해 만들어지는 모든 식의 결과 중 최대/최소값을 구하는 문제다.중간값과, 다음에 계산할 요소의 인덱스를 넘겨주는 방식으로 풀이했다.만약 인덱스가 A의 길이와 같다면 더 이상 연산할 요소가 없기 때문에 연산을 중단하고 결과를 갱신했다. private static void bt(int temp, int nextIdx) { if (nextIdx == A.length) { max = Math.max(max, temp); min = Math.min(min, temp); return; }아직 연산할 요소가 남아있는 경..

[백준 23827] 수열 (Easy) [Java]

문제https://www.acmicpc.net/problem/23827 풀이주어진 수열에 대해 1 ≤ i 수가 너무 커질 수 있으니 1e9 + 7로 나눈 나머지를 출력해야 한다.문제를 만족하는 정수쌍 곱의 합은 i와 i + 1 ~ j의 합의 곱과 같다.최대 길이가 50만인 수열에 대해 누적합을 미리 구해 // Solve final int MOD = (int) (1e9 + 7); long[] prefixSum = new long[N]; prefixSum[0] = A[0]; for (int i = 1; i 모든 i에 대한 A[i] * ( prefixSum[N] - prefixSum[i] )을 구하면 된다. long res = 0; ..

[Docker] 컨테이너 entrypoint가 bash쉘 일 때 attach, exec 사용 시 exit의 영향

목차Docker 컨테이너의 ENTRYPOINT가 /bin/bash 일 때docker attach로 진입한 후 exit 명령어 실행docker exec로 진입한 후 exit 명령어 실행attach, exec 비교 정리서론Docker 컨테이너 내부에 접속할 때 docker attach와 docker exec 두 명령어를 사용할 수 있습니다.이 글에서는 도커 컨테이너의 entrypoint가 bash쉘(/bin/bash)일 때, attach와 exec 명령을 사용해 내부에 진입 후 exit 명령어를 실행했을 때 컨테이너 상태가 어떻게 변하는지 살펴보겠습니다.Docker 컨테이너의 ENTRYPOINT가 /bin/bash 일 때컨테이너의 ENTRYPOINT가 /bin/bash 라는 것은, 컨테이너가 실행될 때 기본..

Dev/Docker 2025.04.09

[백준 30979] 유치원생 파댕이 돌보기 [Java]

문제https://www.acmicpc.net/problem/30979 풀이F의 합이 T이상인지 확인하는 문제다.T이상일 때 파댕이가 울지않기 때문이다. final int fSum = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).sum(); // Solve & Output System.out.println(T 풀이 시간≤ 2m소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/practice/30979.java problem-solving/baekjoon-online-judge/practice/309..