Algorithm ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [Algorithm/Java][LeetCode] 70. Climbing Stairs [LeetCode] 70. Climbinh Stairs https://leetcode.com/problems/climbing-stairs/ ๋ฌธ์ ์ ๊ทผ ์ฒ์์๋ ์ฌ๊ท๋ฅผ ์ด์ฉํด์ ํ์ด๋ณด๋ ค๊ณ ํด์ ์ ์ถ์ ํ์ง๋ง ์๊ฐ ์ด๊ณผ๊ฐ ๋์๋ค. ๊ทธ๋์ DP ๋ฐฉ์์ผ๋ก ํ์ด๋ณด์๋ค. DP ๋ฐฉ์์ผ๋ก ํ๊ธฐ ์ํด์๋ ์ ํ์?์ ๋ฐ๊ฒฌํด์ผ ํ๋ค. ๋ญ๊ฐ ๊ต์ฅํ ์ด๋ ค์ ๋ณด์ด์ง๋ง ๊ฐ์๊ธฐ ๊ฐ์ด ์กํ๋ค.(๊ท์น์ ์ฐพ๋ ๋๋?) ๊ณ๋จ์ ํ๋ฒ์ 1์นธ ๋๋ 2์นธ์ ์ด๋ํ ์ ์๋ค. ๊ทธ๋ฌ๋ฉด 1๋ฒ์งธ ๊ณ๋จ์ ์ฌ๋ผ๊ฐ๋ ค๋ฉด 0๋ฒ์งธ์์ ์์ํด์ผํ๋ค. ๊ทธ๋ฆฌ๊ณ 2๋ฒ์งธ ๊ณ๋จ์ ์ฌ๋ผ๊ฐ๊ธฐ ์ํด์๋ 0๋ฒ์งธ๊ฑฐ๋ 1๋ฒ์งธ ๊ณ๋จ์์ ์์ํด์ผํ๋ค. ๋, 3๋ฒ์งธ ๊ณ๋จ์ ์ฌ๋ผ๊ฐ๊ธฐ ์ํด์๋ 1๋ฒ์งธ๊ฑฐ๋ 2๋ฒ์งธ ๊ณ๋จ์์ ์์ํด์ผํ๋ค. ์ฌ๊ธฐ์ n๋ฒ์งธ ๊ณ๋จ์ ์ค๋ฅด๊ธฐ์ํด์๋ n-1๋ฒ์งธ์ n-2๋ฒ์งธ .. ๋๋ณด๊ธฐ [Algorithm/Java][LeetCode] 53. Maximum subarray [LeetCode] 53. Maximum subarray https://leetcode.com/problems/maximum-subarray/ ๋ฌธ์ ์ ๊ทผ ์ฃผ์ด์ง ๋ฐฐ์ด์์ ์ฐ์๋๋ ๊ฐ์ ๋ํ sum์ด ๊ฐ์ฅ ํฐ subarray์ sum์ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์ฒ์์ ์ด ๋ฌธ์ ๋ฅผ ๋ณด์๋ง์ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ธ ๊ฒ ๊ฐ์์ dp๋ผ๋ ๋ฐฐ์ด์ ๋ง๋ค๊ณ dp[i]๋ i๋ฒ์งธ ์ธ๋ฑ์ค๊น์ง ์ค์ ๊ฐ๋ฅํ ๊ฐ์ฅ ํฐ subarray์ ๊ฐ์ ์ ์ฅํ๋ ๋ฐฐ์ด๋ก ๋ง๋ค์ด์ ํ์๋ค.(๋ฐฉ๋ฒ1) ๊ทผ๋ฐ ๋ฐฉ๋ฒ1๋ก ํ๊ณ ๋ณด๋๊น ๊ตณ์ด dp๋ผ๋ ๋ฐฐ์ด์ ๋ง๋ค์ด์ ์ผ์ผ์ด ๋ค ์ ์ฅํ ํ์ ์์ด ํ์ฌ์ธ๋ฑ์ค ์ ์ subarray๊ฐ(dp[i-1])๋ง ์๋ฉด ๋ ๊ฑฐ ๊ฐ์๋ค. ์ฆ ๋ฐฐ์ด์ ๋ง๋ค์ง ์๊ณ dp[i-1]์ ์ ์ฅํ๋ sum์ด๋ผ๋ ๋ณ์๋ฅผ ๋ง๋ค์ด์ dp[i-1] ์ด์ ๊ฐ(dp[.. ๋๋ณด๊ธฐ [Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ [ํ๋ก๊ทธ๋๋จธ์ค] ์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ https://programmers.co.kr/learn/courses/30/lessons/12930# ๋ฌธ์ ์ ๊ทผ ๋ฌธ์์ด์ ๊ณต๋ฐฑ ๊ธฐ์ค์ผ๋ก ๋๋๊ณ ๋๋ ์ง ๋จ์ด๋ค์ ๊ธฐ์ค์ผ๋ก ์ง์๋ ๋๋ฌธ์๋ก, ํ์๋ ์๋ฌธ์๋ก ๋ฐ๊พธ๋ ๋ฌธ์ ์ด๋ค. splitํจ์๋ฅผ ์ด์ฉํด ๋จ์ด๋ฅผ ๋๋๊ณ , ๋ฐ๋ณต๋ฌธ์ผ๋ก ์ง์, ํ์๋ฅผ ๊ตฌ๋ถํด์ ๋๋ฌธ์,์๋ฌธ์๋ก ๋ฐ๊ฟ์ฃผ์๋ค. Code class Solution { public String solution(String s) { String[] words = s.split(" "); StringBuilder answer = new StringBuilder(); for(int i = 0; i answer.length()) // ์ ๋ ฅ ๋ฌธ์์ด ๋ค์ ๊ณต๋ฐฑ์ด ๋ ์์ ๊ฒฝ์ฐ answer... ๋๋ณด๊ธฐ [Algorithm/Java][BOJ] 3052๋ฒ ๋๋จธ์ง [๋ฐฑ์ค] ๋ฐฑ์ค 3052๋ฒ ๋๋จธ์ง https://www.acmicpc.net/problem/3052 ๋ฌธ์ ์ ๊ทผ 10๊ฐ์ ์ ๋ ฅ๋ค์ 42๋ก ๋๋์ด์ ์๋ก ๋ค๋ฅธ ๋๋จธ์ง ๊ฐ๋ค์ด ๋ช ๊ฐ๊ฐ ์๋์ง ์ถ๋ ฅํ๋ ๋ฌธ์ ์๋ค. ์๋ก ๋ค๋ฅธ ๊ฐ์ด๋ผ๋ ํค์๋๋ฅผ ๋ณด๊ณ Set ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๊ฒ ๋ค๊ณ ์๊ฐ์ด ๋ค์๋ค. Set์ ๋ฐ์ดํฐ์ ์ค๋ณต์ ์ ๊ฑฐํด์ฃผ๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์ค๋ณต ๊ฒ์ฌ๋ฅผ ํ์ง์๊ณ ๋๋จธ์ง๋ฅผ add ํด์ฃผ๊ณ Set์ ํฌ๊ธฐ๋ง ์ถ๋ ฅํ๋ฉด ๋๋ ๋ฌธ์ ์ด๋ค. Code import java.util.Scanner; import java.util.HashSet; public class Main { public static void main(String[] args) { HashSet hs = new HashSet(10); Scanner sc = n.. ๋๋ณด๊ธฐ [Algorithm/Java][BOJ] ๋ฐฑ์ค 2908๋ฒ ์์ [๋ฐฑ์ค] 2908๋ฒ ์์ https://www.acmicpc.net/problem/2908 ๋ฌธ์ ์ ๊ทผ ๋ฌธ์์ด์ ๋ค์ง๋ ๋ฌธ์ ์ด๋ฏ๋ก StringBuilder์ reverse() ํจ์๋ฅผ ์ด์ฉํ๊ธฐ๋ก ํ๊ณ , ์ ๋ ฅ์ด ์ธ์๋ฆฌ ์ ๋๊ฐ์ด๊ธฐ ๋๋ฌธ์ BufferedReader๋ฅผ ์ฐ์ง์๊ณ ๊ทธ๋ฅ Scanner๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅ์ ๋ฐ์๋ค. Code import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); String[] input = sc.nextLine().split(" "); int max = -1; for(String num: input){ StringBuilder.. ๋๋ณด๊ธฐ [Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌธ์์ด ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ [ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌธ์์ด ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ https://programmers.co.kr/learn/courses/30/lessons/12917 ๋ฌธ์ ์ ๊ทผ ๋ฌธ์์ด s๋ฅผ char[] ๋ฐฐ์ด๋ก ๋ฃ์ด์ Arrays.sort๋ฅผ ์ด์ฉํด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋ค ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๋ฐฐ์ด temp๋ฅผ ์ญ์์ผ๋ก result์ ํ๋์ฉ ๋ํด์ฃผ์๋ค. Code import java.util.*; class Solution { public String solution(String s) { char[] temp = s.toCharArray(); Arrays.sort(temp); StringBuilder result = new StringBuilder(); for(int i= temp.length-1; i>=0; i--){ resul.. ๋๋ณด๊ธฐ [Algorithm/Java][LeetCode] 20. Valid Parentheses [LeetCode] 20. Valid Parentheses https://leetcode.com/problems/valid-parentheses/ ๋ฌธ์ ์ ๊ทผ ๊ดํธ๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ธ์ง ์ ๋ซํ๊ณ ์ด๋ ธ๋์ง๋ฅผ ํ์ธํ๋ ๋ฌธ์ ์ด๋ค. ๋น์ทํ(๋๊ฐ์) ๋ฌธ์ ๋ฅผ ๋ฐฑ์ค์์ ํ์ด๋ด์ Stack์ ์ด์ฉํ๋ฉด ๋๋ค๋ ๊ฒ์ ์๊ณ ์์๋ค. ์ฌ๋ ๊ดํธ์ผ ๋๋ Stack์ push๋ฅผ ํด์ฃผ๊ณ ๋ซํ ๊ดํธ์ผ ๋๋ Stack์ top์ด ๊ฐ์ ์ข ๋ฅ์ ๊ดํธ์ธ์ง ํ์ธํ๊ณ popํ๊ฑฐ๋ ์๋๋ผ๋ฉด false๋ฅผ ๋ฆฌํดํด์ค๋ค. ์ด๋ ์์ธ์ฒ๋ฆฌํ ์ํฉ์ 2๊ฐ์ง์ด๋ค. ์ด๋ฆฐ ๊ดํธ๋ก๋ง ์ด๋ฃจ์ด์ ธ์์๋. ๋ซํ ๊ดํธ๋ก๋ง ์ด๋ฃจ์ด์ ธ์์๋. 1๋ฒ์ฒ๋ผ ์ด๋ฆฐ ๊ดํธ๋ก๋ง ์ด๋ฃจ์ด์ ธ์๋ค๋ฉด for๋ฌธ์ ๋น ์ ธ๋์์ ๋ Stack์ด ๋น์ด์์ง ์์ ๊ฒ์ด๊ณ , 2๋ฒ์ฒ๋ผ ๋ซํ ๊ดํธ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค๋ฉด sw.. ๋๋ณด๊ธฐ [Algorithm/Java][LeetCode] 21. Merge Two Sorted Lists [LeetCode] 21. Merge Two Sorted Lists https://leetcode.com/problems/merge-two-sorted-lists/ ๋ฌธ์ ์ ๊ทผ ๋ ๊ฐ์ ์ ๋ ฌ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ํ๋์ ์ ๋ ฌ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ํฉ์น๋ ๋ฌธ์ ์ด๋ค. ์ฐ๊ฒฐ๋ฆฌ์คํธ์์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ฒซ๋ฒ์งธ ๋ ธ๋๋ฅผ ์์ด๋ฒ๋ฆฌ๋ฉด ์๋๋ ๊ฒ์ด๋ค.(์ฒซ๋ฒ์งธ๋ฅผ ์์ด๋ฒ๋ฆฌ๋ฉด ๋ค ์์ด๋ฒ๋ฆฐ๋ค.) ๊ทธ๋์ MergeList์ ์๋ฌด๊ฐ์ด๋ ๋ฃ์ด์ ์ด๊ธฐํํ๊ณ next๋ถํฐ ์ฒซ๋ฒ์งธ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํด ์ฃผ์๋ค. temp๋ฅผ ์ด์ฉํด์ next๋ฅผ ์ฐ๊ฒฐํด ์ฃผ์๊ณ list1๊ณผ list2 ๋ ์ค ํ๋๊ฐ null์ด ๋ ๋๊น์ง ๋๊ฐ๋ฅผ ๋น๊ตํด์ ๋ ์์ ๊ฐ์ ๊ฐ์ง list๋ฅผ temp๋ฅผ ์ด์ฉํด์ ์ฐ๊ฒฐํด ์ฃผ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ ๋ ์ค ํ๋๊ฐ null์ด ๋๋ฉด while๋ฌธ์ ๋น ์ ธ๋์์.. ๋๋ณด๊ธฐ ์ด์ 1 ยทยทยท 3 4 5 6 7 8 9 ๋ค์