๐์ฝ๋ฉํ
์คํธ:CodingTest
https://school.programmers.co.kr/learn/courses/30/lessons/214288 ํ๋ก๊ทธ๋๋จธ์ค์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.programmers.co.krํ์ด๊ณผ์ 1. ์ ํ ๋ณ ๋ฉํ ์ ์ซ์ ์กฐํฉ์ ๋ค ๊ตฌํ๊ธฐ (์์ ํ์) 1-1. ์ด๋ n์ ์ต๋ 20์ด๋ฉฐ k๋ ์ต๋ 5์
๋๋ค. ์๋ ์ค๋ช
์ ์ ๋ฆฌ๋ฅผ ํด๋์๋๋ฐ n-1๊ฐ(19)์์ k-1๊ฐ(4)์ ์กฐํฉ์ ๋ฝ๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ 3,876๊ฐ ์
๋๋ค. 1-2. reqs์ ๊ธธ์ด๋ ์ต๋ 300์ด๋ฏ๋ก, ๋ชจ๋ ์กฐํฉ์์ ์ง์ฐ์๊ฐ์ ๊ณ์ฐํ๋ ๊ฒฝ์ฐ๋ 3876*300 =1,162,800 ์
๋๋ค. 1-3. ์ฆ ์์ ํ์ ..
๐์ฝ๋ฉํ
์คํธ:CodingTest
https://school.programmers.co.kr/learn/courses/30/lessons/42583 ํ๋ก๊ทธ๋๋จธ์ค์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.programmers.co.krํ์ด๊ณผ์ 1. ํ์ ํธ๋ญ์ ์ฌ๋ฆฌ๊ธฐ1-1. ์ฌ๋ผ๊ฐ ์ ์์ผ๋ฉด ํธ๋ญ์ ๋ฌด๊ฒ๋ฅผ offer1-2. ์ฌ๋ผ๊ฐ ์ ์์ผ๋ฉด 0์ offer (๊ฐ์์ ํธ๋ญ)2. ํ์์ ํธ๋ญ ๋นผ์ฃผ๊ธฐํ์ size๊ฐ bridge_length์ ๊ฐ์์ง๋ค๋ฉด, ์ ์ผ ์์ ํ๋ ๋ค๋ฆฌ๋ฅผ ๊ฑด๋๊ฐ ์ ์๋ฏ๋ก q.pollFirst()๋ก ํ์์ ๋นผ์ค์ผ ํฉ๋๋ค.3. truck_weights๋ฐฐ์ด์ ๋ง์ง๋ง ์ธ๋ฑ์ค ํธ๋ญ ๊ณ ๋ คํ๊ธฐ๋ง์ง๋ง ์ธ๋ฑ์ค ํธ๋ญ์ ํ์ ๋ฃ๋ ๊ฒฝ์ฐ..
๐์ฝ๋ฉํ
์คํธ:CodingTest
๋ฌธ์ ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/250136# ํ๋ก๊ทธ๋๋จธ์ค์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.programmers.co.kr ํ์ด๊ณผ์ ๊ฐ ์ด ๋ง๋ค ํ๋์ฉ ์๋๋ก ๋ด๋ ค๊ฐ๋ฉฐ ํ์์ ์ํํฉ๋๋ค. ์ด๋ ์ด๋ฏธ ๊ณ์ฐ ๋ ์์ญ์ ๋ค์ ๊ณ์ฐํ์ง ์๊ธฐ ์ํด ๋ฉ๋ชจ๋ฆฌ์ ์ด์
์ ํด์ค์ผ ํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์ด์
์ ์ํด ์์ญ๋ฒ ๋ฒํธ๋ฅผ ํ ๋นํ๊ณ HashMap์ ํ์ฉํด ๊ทธ ํฌ๊ธฐ๋ฅผ ์ ์ฅํ์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์ด์
1. ์์ ์ธ ์์ญ(1)์ ๋ง๋๊ฒ ๋๋ฉด, ํด๋น ์์ญ์ ํฌ๊ธฐ๋ฅผ bfs๋ก ํ์ธํฉ๋๋ค. ์ด๋, ์์ญ๋ณ ๋ฒํธ (์ ๋ -1,-2,-3 ... ์์๋ก ํ..
๐์ฝ๋ฉํ
์คํธ:CodingTest
https://www.codetree.ai/training-field/frequent-problems/problems/royal-knight-duel/description?page=1&pageSize=20 ๊ตฌํ + bfsํ์ด๊ณผ์ 0. ๋ชจ๋ํ๋ ํจ์๋ฅผ ๋ค ํธ์ถํ๋ solveํจ์.static void solve(int n,int d) { if(knights[n].isOut) return; // 1. ํด๋น ๋ฐฉํฅ์ผ๋ก ์ด๋์ด ๊ฐ๋ฅํ์ง ํ์ธํ๊ธฐ if(!movable(n,d)) return; // 2. ์ด๋์ํค๊ธฐ moved = new boolean[N+1]; move(n, d); moved[n] = false; // ๋ช
๋ น๋ฐ์ n๋ฒ ๊ธฐ์ฌ๋ ์์ง์์์ ์ ์ธ // 3. ๋ฐ๋ฏธ์ง ๊ณ์ฐํ๊ธฐ (๋ช
๋ น์ ๋ฐ์..
๐์ฝ๋ฉํ
์คํธ:CodingTest
https://www.codetree.ai/training-field/frequent-problems/problems/rudolph-rebellion/description?page=1&pageSize=20 ์ฝ๋ํธ๋ฆฌ | ์ฝ๋ฉํ
์คํธ ์ค๋น๋ฅผ ์ํ ์๊ณ ๋ฆฌ์ฆ ์ ์ ๊ตญ๊ฐ๋ํ๊ฐ ๋ง๋ ์ฝ๋ฉ ๊ณต๋ถ์ ๊ฐ์ด๋๋ถ ์ฝ๋ฉ ์์ด๋ณด๋ถํฐ ๊ฟ์ ์ง์ฅ ์ฝํ
ํฉ๊ฒฉ๊น์ง, ๊ตญ๊ฐ๋ํ๊ฐ ์์ ํ ์ปค๋ฆฌํ๋ผ์ผ๋ก ์ค๋นํด๋ณด์ธ์. www.codetree.ai ํ์ด๊ณผ์ ํจ์๋ณ๋ก ๋ชจ๋ํ๋ฅผ ์ ์์ผ์ผํ์ผ๋ฉฐ, ๊ตฌํ๊ณผ์ ์ด ๋ณต์กํ๋ค ๋ณด๋ ์ฒ์ ์์ํ ๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ์ ํด์ ์ฌ์ฉํด์ผ ํ์ต๋๋ค. ์ฌ์ฉํ ํด๋์ค์ ๋ณ์ ์ ์ฒด์ ์ธ ์ฐํ์ ๋ฃจ๋ํ์ ์์น๋ 2์ฐจ์ ๋ฐฐ์ด(int[][] map)์ ์ ์ํ์ผ๋ก ์ ์ฅํ๊ณ , ์ธ๋ถ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋ณ์๋ฅผ ๋ง๋ค์ด์ 2์ฐจ์ ๋ฐฐ์ด(int[][] ..
๐์ฝ๋ฉํ
์คํธ:CodingTest
https://www.acmicpc.net/problem/17822 ํ์ด๊ณผ์ 1. ์ํ์ ํ์ ์ํค๋ ํจ์๋ฅผ ๊ตฌํํด์ผ ํฉ๋๋ค. ArrayList ํน์ LinkedList๋ฅผ ์ฌ์ฉํด์ ๊ตฌํํ ์ ์์ต๋๋ค. add, insert ,remove ํจ์๋ฅผ ํ์ฉํ์ฌ ์ํ์ ํ์ ์ ๊ตฌํํ ์ ์์ต๋๋ค. 2. ์ํ์์ ์ธ์ ํ ์ซ์๋ค ๋ผ๋ฆฌ ์ผ์น์ฌ๋ถ๋ฅผ ํ์ธํด์ผ ํฉ๋๋ค. dfs๋ฅผ ํตํด ์ธ์ ์ฌ๋ถ๋ฅผ ๊ตฌํํฉ๋๋ค. ์ธ์ ํ๊ฒ ๋๋ฉด -1๋ก ์์๋ฅผ ๋ณ๊ฒฝํ์ฌ ์ฒดํฌํ์ต๋๋ค. ์ด๋ ๊ฐ์ ์ํ ๋ด์์์ ์ํ(?)๋ฅผ ๊ตฌํํด์ค์ผ ํฉ๋๋ค. ์๋ฅผ๋ค์ด [2,3,4,2] ์ ๊ฐ์ ์ํ์ธ ๊ฒฝ์ฐ ์ ์ผ ์ ์์ 2์ ์ ์ผ ๋ค ์์ 2๋ ์ธ์ ํด ์์ต๋๋ค. ๋ฐ๋ผ์ dfs์ํ ์ค ์ธ๋ฑ์ค๊ฐ -1์ด ๋๋ฉด 3์ผ๋ก, 4๊ฐ ๋๋ฉด 0์ผ๋ก ๋ณด์ ์ ํด์ค์ผ ํฉ๋๋ค. static bo..
๐์ฝ๋ฉํ
์คํธ:CodingTest
https://www.acmicpc.net/problem/17142 ํ์ด๊ณผ์ 0. ์
๋ ฅ์ ๋ฐ์ ๋ ์ฑ์์ผ ํ ๋น์นธ์ ๊ฐฏ์๋ฅผ ์ ์ฅํฉ๋๋ค. 1. ๋ฐฑํธ๋ํน์ ํ์ฉํด์ ๋ฐ์ด๋ฌ์ค๋ค์ ์กฐํฉ์ ์ ํํฉ๋๋ค. 2. ์ ํ๋ ๋ฐ์ด๋ฌ์ค๋ค์ ๋ํด bfs๋ฅผ ์ํํ์ฌ ํผํธ๋ฆฝ๋๋ค. ๋ฐ์ด๋ฌ์ค๋ฅผ ํผํธ๋ฆด ๋, ๋น์นธ๊ณผ ๋ฐ์ด๋ฌ์ค๊ฐ ์๋ ์นธ์ ๋ํด ๊ตฌ๋ถํด์ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ๋น ์นธ์ ๊ฒฝ์ฐ 0๋ฒ ํ์ด๊ณผ์ ์์ ์ ์ฅํ ๋ชฉํ์ ๋น๊ตํ๊ธฐ ์ํด cnt๊ฐ์ ์ฆ๊ฐ์์ผ ์ค๋๋ค. ๋ฐ์ด๋ฌ์ค์ ๊ฒฝ์ฐ cnt ๊ฐ์ ์ฆ๊ฐ์ํค์ง ์๊ณ ๋ฐฉ๋ฌธ์ฒ๋ฆฌ์ bfsํ์ ๋ฃ๋ ๋์๋ง ์ํํฉ๋๋ค. ์ฒ์์๋ swea์ ์ง๋ขฐ๋ฌธ์ ์ ํท๊ฐ๋ ค์ ๋ฐ์ด๋ฌ์ค๋ฅผ ๋ง๋๋ฉด ๊ณ์ ํผ์ง๋๋ก ๊ตฌํํด์ ๊ณ์ ํ๋ ธ์ต๋๋ค ใ
ใ
3. ๋น ์นธ์ ๋ค ์ฑ์ ์ผ๋ฉด ์ด๋ํ ์๊ฐ์ return ํฉ๋๋ค. bfs์์ ์๊ฐ์ ๊ณ์..
๐์ฝ๋ฉํ
์คํธ:CodingTest
N = ํ ๊ธธ์ด M = ์ด ๊ธธ์ด int[][] origin = { {1,2,3}, {4,5,6}, {7,8,9} }; // ์๋ณธ ๋ฐฐ์ด int[][] result; // ํ์ ๋ฐฐ์ด ์๊ณ ๋ฐฉํฅ 90๋ ํ์ : (i,j) = (N-1-j, i) ํน์ (j, N-1-i) = (i,j) for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { rotate_arr[i][j] = arr[N - 1 - j][i]; } } ๋ฐ ์๊ณ ๋ฐฉํฅ 90๋ ํ์ : (i,j) = (j, N-1-i) ํน์ (N-1-j, i) = (i, j) for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { rotate_arr[i][j] = ar..