본문 바로가기

Baekjoon/[7] 기타12

[백준] 8979번 올림픽 JAVA (자바) 풀이 문제 8979 (구현, 정렬) :  규칙을 따라 어느 나라가 더 잘했는지 결정한다.금메달 수가 더 많은 나라금메달 수가 같으면, 은메달 수가 더 많은 나라금, 은메달 수가 모두 같으면, 동메달 수가 더 많은 나라 :  만약 두 나라가 금, 은, 동메달 수가 모두 같다면 두 나라의 등수는 같다    예) 1등이 1번 국가고 2,3번 국가가 동점, 4번 국가 최하위라면 등수는 1-2-2-4(국가순) 이다   [입력] :  입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000), 등수를 알고 싶은 국가 K(1 ≤ K ≤ N) :  이후 N개의 각 줄에는 차례대로 각 국가를 나타내는 정수와 이 국가가 얻은 금, 은, 동메달의 수    (전체 메달 수의 총합은 1,000,000 이하)    [출력] :  입력받.. 2025. 2. 8.
[백준] 1931번 회의실 배정 JAVA (자바) 풀이 문제 1931(그리디, 정렬) :  한 개의 회의실, N개의 회의, 회의실 사용표 :  각 회의 I에 대해 시작시간과 끝나는 시간    각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수 찾기  :  회의는 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의 시작    (회의의 시작시간과 끝나는 시간이 같다면 시작하자마자 끝나는 회의)  [입력] :  첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000) :  둘째 줄부터 N+1 줄까지 각 회의의 시작시간과 끝나는 시간    (시작 시간과 끝나는 시간은 2³¹-1보다 작거나 같은 자연수 또는 0)    [출력] :  첫째 줄에 최대 사용할 수 있는 회의의 최대 개수를 출력    [문제접근]  1. 정렬 이용하.. 2024. 7. 17.
[백준] 15661번 링크와 스타트 JAVA (자바) 풀이 문제 15661 (비트마스킹) : 축구는 평일 오후에 하고 의무 참석도 아니다. : 축구를 하기 위해 모인 사람은 총 N명, 이제 스타트 팀과 링크 팀으로 사람들을 나눈다. (한 명 이상) : 번호를 1부터 N까지로 배정했고 능력치 Sij는 i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치이다. 팀의 능력치는 팀에 속한 모든 쌍의 능력치 Sij의 합이다. (예시) N=4이고, S가 아래와 같은 경우를 살펴보자. 예를 들어, 1, 2번이 스타트 팀, 3, 4번이 링크 팀에 속한 경우에 두 팀의 능력치는 아래와 같다. 스타트 팀: S12 + S21 = 1 + 4 = 5 링크 팀: S34 + S43 = 2 + 5 = 7 1, 3번이 스타트 팀, 2, 4번이 링크 팀에 속하면, 두 팀의 능력.. 2024. 2. 26.
[백준] 3758번 KCPC JAVA (자바) 풀이 문제 3758 총 k개의 문제 문제에 대한 점수 = 0점 ~ 100점 풀이를 제출한 팀의 ID, 문제 번호, 점수 시간 순서대로 저장 한 문제에 대한 풀이를 여러 번 제출할 수 있고 그 중 최고 점수 풀이를 한번도 제출하지 않았으면 0점 팀 최종 점수 = 각 문제의 최고 점수의 총합 팀 순위 = 현재 팀보다 높은 점수를 받은 팀의 수 + 1 최종 점수가 같은 경우, 풀이를 제출한 횟수가 적은 팀의 순위가 높다. 최종 점수도 같고 제출 횟수도 같은 경우, 마지막 제출 시간이 더 빠른 팀의 순위가 높다. [입력] : 첫 번째 줄 테스트 데이터의 수 T : 각 테스트 데이터의 첫 번째 줄 팀의 개수 n, 문제의 개수 k, 당신 팀의 ID t, 로그 엔트리의 개수 m : 다음 m개의 줄에 각 풀이에 대한 정보가.. 2024. 2. 13.
[백준] 12865번 평범한 배낭 JAVA (자바) 풀이 문제 12865 준서가 여행에 필요하다고 생각하는 N개의 물건이 있다 각 물건은 무게 W와 가치 V를 가지는데 해당 물건을 배낭에 넣어서 가면 준서가 V만큼 즐길 수 있다 최대 K만큼의 무게만을 넣을 수 있는 배낭만 들고 다닐 수 있다 물건들의 가치의 최댓값 구하기 [입력] : 첫 줄에 물품의 수 N(1 ≤ N ≤ 100), 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000) : 두 번째 줄부터 N개의 줄까지 물건 무게 W(1 ≤ W ≤ 100,000), 해당 물건의 가치 V(0 ≤ V ≤ 1,000) ( 모든 수는 정수 ) 4 7 6 13 4 8 3 6 5 12 [출력] : 한 줄에 배낭에 넣을 수 있는 물건들의 가치합의 최댓값을 출력 14 [코드] import java.io.*; public cla.. 2024. 2. 5.
[백준] 20310번 타노스 JAVA (자바) 풀이 문제 20310 0과 1로 이루어진 문자열 S S가 포함하는 0의 개수와 1의 개수는 모두 짝수 갑자기 타노스는 구성하는 문자 중 절반의 0과 절반의 1을 제거하여 새로운 문자열 S'를 만들고자 한다 S'로 가능한 문자열 중 사전순으로 가장 빠른 것을 구해라 [입력] : 문자열 S [출력] : 문자열 중 사전순으로 가장 빠른 것을 출력 [코드] import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(.. 2024. 1. 30.
[백준] 9017번 크로스 컨트리 JAVA (자바) 풀이 문제 9017 (구현) 팀 = 6명이어야 점수 계산 가능 (6명 아래는 점수 없음) 결승점을 통과한 순서대로 점수 부여 (점수는 등수와 같다) 선수들의 소속 팀 번호 부여 팀 점수 = 상위 4명의 주자의 점수를 합하여 계산 (결승점을 통과한 순서대로 점수를 받기) 가장 낮은 점수를 얻는 팀이 우승 (동점의 경우, 다섯 번째 주자가 가장 빨리 들어온 팀이 우승) (예시) → 팀 B, D = 선수미달 = 점수 없음 → 팀 A 점수 = 18 (1+4+6+7) ▶ 두 팀의 점수가 같으므로 5번째 선수 점수를 통해 A 팀 우승!! → 팀 C 점수 = 18 (2+3+5+8) [입력] : 첫 번째 줄 테스트 케이스 수 T (입력 데이터는 표준입력 사용) : 각 테스트 케이스의 첫 번째 줄에 결승점 통과한 인원수 N .. 2024. 1. 29.
[백준] 16926번 배열 돌리기 1 JAVA (자바) 풀이 문제 1707 크기가 N×M인 배열이 있을 때, 배열을 다음과 같이 반시계 방향으로 돌려야 한다 A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] ↓ ↓ ↑ ↑ A[3][1] A[3][2] → A[3][3] → A[3][4] A[3][5] ↓ ↑ A[4][1] → A[4][2] → A[4][3] → A[4][4] → A[4][5] 예) 아래와 같은 배열을 2번 회전시키면 다음과 같다 1 2 3 4 2 3 4 8 3 4 8 6 5 6 7 8 1 7 7 6 2 7 8 2 9 8 7 6 → 5 6 8 2 → 1 7 6 3 5 4 3 2 9 5 4 3 5 9 5 4 [입력] : 첫째 줄에 배.. 2024. 1. 23.
[백준] 18111번 마인크래프트 JAVA (자바) 풀이 문제 18111 마인크래프트는 1 × 1 × 1 크기의 블록들로 건축 가능 땅의 높이를 모두 동일하게 만드는 ‘땅 고르기’ 작업 필수 세로 N, 가로 M 크기의 집터 내가 가진 블럭 B 집터 맨 왼쪽 위의 좌표는 (0, 0) 블록을 제거해 인벤토리에 넣기 = 2초 소요 인벤토리에서 블록 하나를 꺼내어 놓기 = 1초 소요 땅 고르기’ 작업에 걸리는 최소 시간과 그 경우 땅의 높이를 출력해라 (집터 아래에 빈 공간은 존재 X, 집터 바깥에서 블록 수집 X, 땅의 높이는 256블록을 초과 X, 음수 X) [입력] : 첫째 줄에 N, M, B (1 ≤ M, N ≤ 500, 0 ≤ B ≤ 6.4 × 107) : 둘째 줄부터 N개의 줄에 각각 M개의 정수로 땅의 높이 : (i + 2)번째 줄의 (j + 1)번째 수.. 2024. 1. 23.
[백준] 1914번 하노이 탑 JAVA (자바) 풀이 문제 1914번 : 3개의 장대 중 첫번째 장대에 반경이 서로 다른 n개의 원판이 크기 순서대로 쌓여있다 : 첫번째 장대를 세번째 장대로 옮긴다 한 번에 한 개의 원판씩 옮기기 가능 쌓아놓은 원판은 항상 크기별로 (아래로 갈수록 더 크다) : 이동횟수는 최소 [입력] : 첫 줄에 첫번째 장대에 쌓인 원판 개수 N (1 ≤ N ≤ 100) [출력] : 첫째줄에 옮긴 횟수 출력 : 두번째 줄부터 K개의 줄까지 수행과정 출력 (N ≤ 20) 예) 두 정수 A B 출력 = A번째 탑의 가장 위 원탑을 B번째 탑의 가장 위로 옮긴다 : N > 20 경우 과정 출력 X [설명 예시] 원반개수 [n = 1] A → C 1회 총 1회 원반개수 [n = 2] A → B 1회 A → C 1회 B → C 1회 총 3회 원반.. 2023. 10. 30.