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

분류 전체보기 827

[백준 11637] 인기 투표 [Java]

문제https://www.acmicpc.net/problem/11637 풀이N명의 후보자에 대한 투표수가 주어질 때 다음 조건에 따라 올바른 문구를 출력하면 된다.최다 득표자가 과반수 득표를 했을 때최다 득표자가 절반 이하의 득표를 했을 때최다 득표자가 2명 이상일 때이를 위해서는 최다 득표 수와, 최다 득표자의 순서, 전체 투표수를 구해야 한다. int max = -1, idx = -1, sum = 0; for (int i = 0; i max) { max = A[i]; idx = i; } }이후 최다 득표자가 2명인지 확인 후 i..

[백준 01758] 알바생 강호 [Java]

문제https://www.acmicpc.net/problem/1758 풀이대기 순번 만큼 줄어든 팁을 최대한 많이 받기 위해 손님의 순서를 바꿔야 하는 문제다.팁 - 대기 순번이 0 이하인 경우에는 0원으로 계산하며, 대기 순번은 점점 커진다.따라서 작은 팁이 늦은 대기 순번으로 계산할 때 더 많은 팁을 받을 수 있다.입력받은 팁들을 내림차순으로 정렬해주자. // Solve Arrays.sort(A, Comparator.reverseOrder()); 팁 - 대기 순번의 계산 결과가 0이하가 될 때 까지 받을 수 있는 팁들을 계산하면 된다.N은 최대 10만이며 int의 범위를 초과한다 결과는 long으로 담아주자. long sum = 0; f..

[백준 03991] 한번 쏘면 멈출 수 없어 [Java]

문제https://www.acmicpc.net/problem/3991 풀이문제의 규칙에 따라 구슬들을 없애면서 최대 점수를 구하는 문제다.최대 점수를 얻기 위해서는 종류가 C개인 구슬들을 종류 별 로 한 턴에 전부 없애면 된다.그러기 위해서는 구슬을 아래에서 위로, 왼쪽에서 오른쪽으로 계단을 쌓듯 구슬을 배치하면 된다. // Solve int idx = 0; for (int j = 0; j = 0; --i) { if (color[idx] 이제 오른쪽 위부터 구슬을 제거하면 남아있는 구슬들의 위치가 바뀌지 않으면서도 한 턴에 한 종류의 구슬을 모두 제거할 수 있다. 풀이 시간≤ 13m소스코드https://github.com/rogi-rogi/..

[백준 28238] 정보 선생님의 야망 [Java]

문제https://www.acmicpc.net/problem/28238 풀이주어진 N명의 학생들의 시간표를 보고 가장 많은 학생들이 두 번의 수업에 참여할 수 있는 날과, 참여할 수 있는 인원을 구하는 문제다.학생의 수와 요일의 곱이므로 모든 경우를 다 생각해볼 수 있다.모든 경우에 대한 합을 구하고, 합이 갱신될 때 마다 두 요일을 기록해두면 된다. // Solve int a = -1, b = -1; int max = -1; for (int i = 0; i max) { a = i; b = j; max = cnt; } ..

[백준 28445] 알록달록 앵무새 [Java]

문제https://www.acmicpc.net/problem/28445 풀이두 앵무새의 몸통과 꼬리색을 사용해 모든 쌍을 만들면 되는 문제다.우선 입력을 받을 때 몸통과 꼬리색이 중복될 수 있으니, 집합에 색상들을 담아주자. // Input Set set = new HashSet(); StringTokenizer st = new StringTokenizer(br.readLine()); set.add(st.nextToken()); set.add(st.nextToken()); st = new StringTokenizer(br.readLine()); set.add(st.nextToken()); set.add(s..

[백준 01769] 3의 배수 [Java]

문제https://www.acmicpc.net/problem/1769 풀이주어진 수의 각 자리를 합하는 과정을 반복해서 한 자릿수로 만드는 문제다.문자열을 순회하며 합을 구해주자. 연산 횟수도 구해야 하므로 카운트 해주자. // Solve int cnt = 0; while (X.length() > 1) { int sum = 0; for (int i = 0; i 마지막 한 자릿수가 3의 배수인지 아닌지 확인해주자. System.out.println(Integer.parseInt(X) % 3 == 0 ? "YES" : "NO");풀이시간≤ 3m소스코드https://github.com/rogi-rogi/problem-so..

[백준 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..