본문 바로가기

전체 글

(154)
[백준] 10830 행렬 제곱 [자바] https://st-lab.tistory.com/251 [백준] 10830번 : 행렬 제곱 - JAVA [자바] https://www.acmicpc.net/problem/10830 10830번: 행렬 제곱 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머 st-lab.tistory.com import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.StringTokenizer; public class Main { static int N; static int[..
[백준] 27115 통신소 [자바] https://coder-in-war.tistory.com/entry/%EA%B0%9C%EB%85%90-47-%EC%8A%A4%EC%9C%84%ED%95%91-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98Sweeping-Algorithm [ 개념 ] 47. 스위핑 알고리즘(Sweeping Algorithm) > 스위핑 기법(Sweeping Algorithm) 이번에 소개해 드릴 기법은 스위핑 알고리즘(sweeping algorithm)이라고 하는데, 기법 개념 자체는 굉장히 간단하고 범용적인 대신에, 대부분 겁나게 어렵습니다. 기본적 coder-in-war.tistory.com import java.io.BufferedReader; import java.io.InputStreamRea..
[백준] 27114 조교의 맹연습 [자바] https://st-lab.tistory.com/141 [백준] 12865번 : 평범한 배낭 - JAVA [자바] www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ st-lab.tistory.com https://upload.acmicpc.net/30f339f9-285f-43ef-bdf1-6da563423866/ ※. 작업을 끝마쳤을 때 처음 바라보던 방향을 봐야한다.(360 회전) ※. 한 바퀴 회전하는 동작들은 총 6가지 (좌로 돌아 + 우로 돌아) (좌로 돌아 + 좌로 돌아 + 뒤로..
[백준] 27113 잠입 [자바] https://upload.acmicpc.net/30f339f9-285f-43ef-bdf1-6da563423866/ ※. 자율 방법 로봇은 N+M만에 목표 지점에 도달 할 수 있다. (최 상병은 아래, 오른쪽으로만 이동해야 한다.) ※. 레이저가 2개일 때 (1. L L, 2. RR, 3. RL, 4.LR) (최상병은 녹색구간으로만 통과할 수 있다.) import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.StringTokenizer; public class Main { public static void main..
[백준] 27112 시간 외 근무 멈춰! [자바] https://upload.acmicpc.net/30f339f9-285f-43ef-bdf1-6da563423866/ https://www.acmicpc.net/board/view/107317 글 읽기 - 제1회 보라매컵 예선 Open Contest 종료 댓글을 작성하려면 로그인해야 합니다. www.acmicpc.net ※. 마감일이 빠른 작업부터 진행 ※. 평시근무를 계산할 때 주말을 빼줘야한다. (토요일 day % 7 == 6, 일요일 day % 7 == 0) ※. 배열 10만, 마감일, 걸리는 시간도 10만이라 1~최대 마감일 로 반복문을 작성하면 더 쉽게 풀 수 있다. import java.io.BufferedReader; import java.io.InputStreamReader; import j..
[Codeforces Round #842 (Div. 2)] D. Lucky Permutation https://www.acmicpc.net/problem/25577 25577번: 열 정렬정렬 정 첫 번째 줄에 배열의 크기 $N(4 ≤ N​ ≤ 100\,000)$이 주어진다. 그다음 줄에 배열의 원소 $A_1, A_2, \cdots, A_n (-10^9 ≤ A_i ≤ 10^9, i \neq j $ 이면 $ A_i \neq A_j )$ 이 주어진다. 배열의 원소는 모두 정수이다 www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.St..
[Codeforces Round #842 (Div. 2)] B. Quick Sort ※. 올바른 자리에 없는 원소들은 전부 작업을 거쳐야 한다. (1, 5, 2, 3, 4) ※. 올바르지 않은 원소들 중 가장 작은것부터 넣어야 한다. (1,5,2,3,4 -> 1 - 2 3 - 4 5 작업이 끝나면 정렬 완료) ※. 배열을 탐색하며 순서대로 있는 원소는 작업하지 않는다. (x,1,y,2,z,3 -> 1,2,3 - x y z 1 2 3 은 원소를 뺄 때 정렬) ※. n개의 배열 중 순서대로 있는 원소(w)를 뺀 후 작업해야 하는 나머지 원소(n-w)를 k로 나누어 준다. (+k 는 정렬해야 할 배열이 k개 미만일 때도 최소 1번의 작업을 해야하기 때문에) import java.io.BufferedReader; import java.io.InputStreamReader; import java..
[Hello 2023] C. Least Prefix Sum ※. pm까지의 누적합이 가장 작아야 한다. (pm+1 ~ pn까지의 합이 0이하가 되면 안된다. -> pm 이후의 누적합을 sum이라 할 때 sum이 음수가 된다면 (pm + 음수)로 pm보다 작은값이 생기기 때문) ● pm+1부터 pn까지 누적합을 구하다 누적합이 0미만이 되는 순간이 있으면 누적합이 양수가 될 때 까지 우선순위큐에서 값을 빼 더해준다. (원소값이 양수라면 0미만이 될 수 없으므로 제외, 원소값이 음수라면 0미만이 될 수 있기 때문에 누적합에 더해주고 이 후에 누적합이 0미만이 되면 누적합 - 더해준 원소값 +(-더해준 원소값)을 해줘야 함으로 (-2*arr[i])로 우선순위큐에 넣는 다.) ※.pm을 포함한 이전의 누적합은 원소값보다 커야한다. (pm이전의 누적합들은 pm까지의 누적..