https://school.programmers.co.kr/learn/courses/30/lessons/160586 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๋จผ์ ์ ๊ฒฝ์ด ๋ถ๋ถ์ ์ฐพ์ target๋ฌธ์์ด์ค ๋ฌธ์๊ฐ ๋ง์ฝ์ ์๋ค๋ฉด -1 ๋ก ๋๋๋๊ฒ์ด๋ค. ๊ทธ๋์ keymap์ ๋ฌธ์์ด์ ๋ชจ๋ ๋ํด์, ์ฐพ์ ์ ์๋์ง ์๋์ง ๋จผ์ ํ๋ณํ๋ค. ๊ทผ๋ฐ ๊ณ์ ์ค๋ต์ด ๋์๋๊ฒ .. ! keymap ์ ์ฒด ๋ฐฐ์ด์ค ์ฐพ์์๋ ์์ด์ indexOf๋ก ์์ฐจ์ ์ผ๋ก ๊ฐ์ฅ ์์ ์์ index๋ฅผ ๊ตฌํ๋๋ฐ keymap[0] ์์๋ ํด๋น ๋ฌธ์๊ฐ ์๊ณ keymap[1] ์๋ ์์๊ฒฝ์ฐ 0์ด๋ผ๋..
๐ Comparable & Comparator - Comparable๊ณผ Comparator๋ ๋ชจ๋ ์ธํฐํ์ด์ค์ด๋ค. - ์ฆ, ์ฌ์ฉํ๊ณ ์ ํ๋ค๋ฉด ์ธํฐํ์ด์ค ๋ด์ ์ ์ธ๋ ๋ฉ์๋๋ฅผ ๋ฐ๋์ ๊ตฌํ ํด์ผํ๋ค. ๋ณดํต Comparable ์ธํฐํ์ด์ค์๋ compareTo(T o) ๋ฉ์๋ ํ๋๊ฐ ์ ์ธ๋์ด์๋ค. ์ด๊ฒ์ compareTo ๋ฉ์๋๋ฅผ ์ฌ์ ์(Override)ํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค. Comparator์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด compare ๋ฉ์๋๋ฅผ ๊ตฌํํด์ผ ํ๊ณ , Comparable ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด compareTo ๋ฉ์๋๋ฅผ ๊ตฌํํด์ผํ๋ค. โ Comparable & Comparator " ๊ฐ์ฒด๋ฅผ ๋น๊ตํ ์ ์๋๋ก ๋ง๋ ๋ค " Why ? ์๋๋ byte, int, double ๋ฑ ๋ถ๋ฑํธ๋ฅผ ํตํด ์ฝ๊ฒ ๋ ๋ณ์๋ฅผ ๋น๊ตํ ..
๐ TreeSet TreeSet TreeSet์ Set ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค๋ก์จ ๊ฐ์ฒด๋ฅผ ์ค๋ณตํด์ ์ ์ฅํ ์ ์๊ณ ์ ์ฅ ์์๊ฐ ์ ์ง๋์ง ์๋๋ค๋ Set์ ์ฑ์ง์ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์๋ค. ์ด์ง ํ์ ํธ๋ฆฌ์ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ์ถ๊ฐ์ ์ญ์ ์๋ ์๊ฐ์ด ์กฐ๊ธ ๋ ๊ฑธ๋ฆฌ์ง๋ง, ์ ๋ ฌ๊ณผ ๊ฒ์์ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ด์งํ์ํธ๋ฆฌ์ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก Nature Ordering์ ์ง์ํ๋ฉฐ ์์ฑ์์ ๋งค๊ฐ๋ณ์๋ก Comparator ๊ฐ์ฒด๋ฅผ ์ ๋ ฅํ์ฌ ์ ๋ ฌ ๋ฐฉ๋ฒ์ ์์๋ก ์ง์ ํด์ค ์๋ ์๋ค. ๋ ๋ ๋ธ๋ ํธ๋ฆฌ : ๋ถ๋ชจ๋ ธ๋๋ณด๋ค ์์ ๊ฐ์ ๊ฐ์ง๋ ๋ ธ๋๋ ์ผ์ชฝ ์์์ผ๋ก, ํฐ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ๋ ธ๋๋ ์ค๋ฅธ์ชฝ ์์์ผ๋ก ๋ฐฐ์นํ์ฌ ๋ฐ์ดํฐ์ ์ถ๊ฐ๋ ์ญ์ ์ ํธ๋ฆฌ๊ฐ ํ์ชฝ์ผ๋ก ์น์ฐ์ณ์ ธ์์ง ์๋๋ก ๊ท ํ์ ๋ง์ถ์ด์ค๋ค...
๐ hasNextInt Scanner์ ๊ธฐ๋ณธ ๋ฉ์๋ hasNextInt๋ Scanner์์ ์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ฒฝ์ฐ true๋ฅผ, ์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ง ์์ ๊ฒฝ์ฐ false๋ฅผ ๋ฐํํ๋ ๋ฉ์๋์ด๋ค. ๐ ์์ 1 ์ ์ผ ๊ฐ๋จํ ์ฌ์ฉ ๋ฐฉ๋ฒ if ๋ฌธ์ ์ฌ์ฉํด์ ์๋์ ๊ฐ์ด kb๊ฐ ์ ์๋ก ๋์ด๊ฐ๋์ง ํ์ธ ํ ์ ์๊ฐ ์๋๋ฉด "๊ฑฐ์ง" ๋ฐํ // Scanner ๋ณ์ ์ ์ธ Scanner kb = new Scanner(System.in); // if๋ฌธ์ ์ฌ์ฉํด์ ์ ์์ธ ๊ฒฝ์ฐ true์ด๋ฏ๋ก ์ฐธ์ ์ถ๋ ฅ, ์๋ ๊ฒฝ์ฐ false๋ฅผ ์ถ๋ ฅ if(kb.hasNextInt()) System.out.print("์ฐธ"); else System.out.print("๊ฑฐ์ง"); ๐ ์์ 2 while๋ฌธ์ ์กฐ๊ฑด์ ๊ฑธ์ด์ Scanner๊ฐ ์ ์๋ก ๋์ด์ค์ง ์๋ ..
๐JAVA ํ๋ณํ ๋ชจ์ java ํ๋ณํ์ด ๊ณ์ ์กฐ๊ธ์ฉ ํท๊ฐ๋ ค์ ๋ฐ๋ก ์ ๋ฆฌํฉ๋๋ค. String -> int String s="123"; int num=Integer.parseInt(s); /// 123 String s="123"; int num=Integer.valueOf(s); // 123 int -> String null๊ฐ์ด ๋ค์ด์ค๋ฉด ์ค๋ฅ์ผ์ผํจ๋ค. int num=123; String s=Integer.toString(num); // "123" null๊ฐ์ด ๋ค์ด์ค๋ฉด "null"๋ฐํ (๊ถ์ฅ) int num=123; String s=String.valueOf(num); // "123" String -> Char String str="string"; str.charAt(1); // t Char -> Strin..
String ํด๋์ค java.lang.String ํด๋์ค C์ธ์ด์์๋ ๋ฌธ์์ด์ charํ ๋ฐฐ์ด๋ก ํํํ์ง๋ง, ์๋ฐ์์๋ ๋ฌธ์์ด์ ์ํ String ํด๋์ค๋ฅผ ๋ณ๋๋ก ์ ๊ณตํ๋ค. String ํด๋์ค์๋ ๋ฌธ์์ด๊ณผ ๊ด๋ จ๋ ์์ ์ ํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ค์ํ ๋ฉ์๋๊ฐ ํฌํจ๋์ด ์๋ค. ์ด๋ฌํ String ํด๋์ค๋ java.lang ํจํค์ง์ ํฌํจ๋์ด ์ ๊ณต๋๋ค. String ์ธ์คํด์ค๋ ํ๋ฒ ์์ฑ๋๋ฉด ๊ทธ ๊ฐ์ ์ฝ๊ธฐ๋ง ํ ์ ์๊ณ , ๋ณ๊ฒฝ ํ ์๋ ์๋ค. ์ด๋ฌํ ๊ฐ์ฒด๋ฅผ ์๋ฐ์์๋ ๋ถ๋ณ ๊ฐ์ฒด(immutable object)๋ผ๊ณ ํ๋ค. ์ฆ, ์๋ฐ์์ ๋ง์ (+)์ฐ์ฐ์๋ฅผ ์ด์ฉํ์ฌ ๋ฌธ์์ด ๊ฒฐํฉ์ ์ํํ๋ฉด, ๊ธฐ์กด ๋ฌธ์์ด์ ๋ด์ฉ์ด ๋ณ๊ฒฝ๋๋ ๊ฒ์ด ์๋๋ผ ๋ด์ฉ์ด ํฉ์ณ์ง ์๋ก์ด String ์ธ์คํด์ค๊ฐ ์์ฑ๋๋ ๊ฒ์ด๋ค. charAt(..
ํ๊ธ ํ์ฅ ์๋๊ทธ๋จ(HashMap) ๋งค์ถ์ก์ ์ข ๋ฅ(Hash, sliding window) ๋ชจ๋ ์๋๊ทธ๋จ ์ฐพ๊ธฐ ( Hash, sliding window : ์๊ฐ๋ณต์ก๋ O(n)) K๋ฒ์งธ ํฐ ์ 1. ํ๊ธํ์ฅ import java.util.*; public class Main { public char solution(int n,String str){ char answer=' '; HashMap map=new HashMap(); for(char x:str.toCharArray()){ map.put(x,map.getOrDefault(x,0)+1); } int max=Integer.MIN_VALUE; for(char key:map.keySet()){ if(map.get(key)>max){ max=map.get(ke..
1. ๋ ๋ฐฐ์ด ํฉ์น๊ธฐ ( two pointers algorithm ) 2. ๊ณตํต์์๊ตฌํ๊ธฐ( two points algorithm ) 3. ์ต๋ ๋งค์ถ( Sliding window ) 4. ์ฐ์๋ถ๋ถ์์ด ( ๋ณตํฉ์ ๋ฌธ์ ) 5.1 ์ฐ์๋ ์์ฐ์์ ํฉ ( two pointers ) 5.2 ์ฐ์๋ ์์ฐ์์ ํฉ ( ์ํ ) 6. ์ต๋ ๊ธธ์ด ์ฐ์๋ถ๋ถ์์ด ( ๋ณตํฉ์ ๋ฌธ์ ) 1. ๋ ๋ฐฐ์ด ํฉ์น๊ธฐ ( two pointers algorithm ) import java.util.*; public class Main { public ArrayList solution(int n, int m, int[] a, int[] b){ ArrayList answer=new ArrayList(); int p1=0, p2=0; while(p1