Deep_Dev
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][JAVA]Level 1 : ๋Œ€์ถฉ ๋งŒ๋“  ์žํŒ

https://school.programmers.co.kr/learn/courses/30/lessons/160586 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๋จผ์ € ์‹ ๊ฒฝ์“ด ๋ถ€๋ถ„์€ ์ฐพ์„ target๋ฌธ์ž์—ด์ค‘ ๋ฌธ์ž๊ฐ€ ๋งŒ์•ฝ์— ์—†๋‹ค๋ฉด -1 ๋กœ ๋๋‚˜๋Š”๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ keymap์˜ ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ๋”ํ•ด์„œ, ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ๋จผ์ € ํŒ๋ณ„ํ–ˆ๋‹ค. ๊ทผ๋ฐ ๊ณ„์† ์˜ค๋‹ต์ด ๋‚˜์™”๋˜๊ฒŒ .. ! keymap ์ „์ฒด ๋ฐฐ์—ด์ค‘ ์ฐพ์„์ˆ˜๋Š” ์žˆ์–ด์„œ indexOf๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜์˜ index๋ฅผ ๊ตฌํ•˜๋Š”๋ฐ keymap[0] ์—์„œ๋Š” ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ์žˆ๊ณ  keymap[1] ์—๋Š” ์—†์„๊ฒฝ์šฐ 0์ด๋ผ๋Š”..

[JAVA] Comparable & Comparator

๐Ÿ“š Comparable & Comparator - Comparable๊ณผ Comparator๋Š” ๋ชจ๋‘ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. - ์ฆ‰, ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ์ธํ„ฐํŽ˜์ด์Šค ๋‚ด์— ์„ ์–ธ๋œ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ฐ˜๋“œ์‹œ ๊ตฌํ˜„ ํ•ด์•ผํ•œ๋‹ค. ๋ณดํ†ต Comparable ์ธํ„ฐํŽ˜์ด์Šค์—๋Š” compareTo(T o) ๋ฉ”์†Œ๋“œ ํ•˜๋‚˜๊ฐ€ ์„ ์–ธ๋˜์–ด์žˆ๋‹ค. ์ด๊ฒƒ์€ compareTo ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜(Override)ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Comparator์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด compare ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๊ณ , Comparable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด compareTo ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค. โœ… Comparable & Comparator " ๊ฐ์ฒด๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ ๋‹ค " Why ? ์›๋ž˜๋Š” byte, int, double ๋“ฑ ๋ถ€๋“ฑํ˜ธ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ๋‘ ๋ณ€์ˆ˜๋ฅผ ๋น„๊ตํ•  ..

article thumbnail
[JAVA][์ž๋ฃŒ๊ตฌ์กฐ] ํŠธ๋ฆฌ์…‹ ( TreeSet )

๐Ÿ“š TreeSet TreeSet TreeSet์€ Set ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋กœ์จ ๊ฐ์ฒด๋ฅผ ์ค‘๋ณตํ•ด์„œ ์ €์žฅํ•  ์ˆ˜ ์—†๊ณ  ์ €์žฅ ์ˆœ์„œ๊ฐ€ ์œ ์ง€๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” Set์˜ ์„ฑ์งˆ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ถ”๊ฐ€์™€ ์‚ญ์ œ์—๋Š” ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ๋” ๊ฑธ๋ฆฌ์ง€๋งŒ, ์ •๋ ฌ๊ณผ ๊ฒ€์ƒ‰์— ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ์˜ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ์— ๊ธฐ๋ณธ์ ์œผ๋กœ Nature Ordering์„ ์ง€์›ํ•˜๋ฉฐ ์ƒ์„ฑ์ž์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ Comparator ๊ฐ์ฒด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ •๋ ฌ ๋ฐฉ๋ฒ•์„ ์ž„์˜๋กœ ์ง€์ •ํ•ด์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. ๋ ˆ๋“œ ๋ธ”๋ž™ ํŠธ๋ฆฌ : ๋ถ€๋ชจ๋…ธ๋“œ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๋Š” ์™ผ์ชฝ ์ž์‹์œผ๋กœ, ํฐ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋…ธ๋“œ๋Š” ์˜ค๋ฅธ์ชฝ ์ž์‹์œผ๋กœ ๋ฐฐ์น˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€๋‚˜ ์‚ญ์ œ ์‹œ ํŠธ๋ฆฌ๊ฐ€ ํ•œ์ชฝ์œผ๋กœ ์น˜์šฐ์ณ์ ธ์žˆ์ง€ ์•Š๋„๋ก ๊ท ํ˜•์„ ๋งž์ถ”์–ด์ค€๋‹ค...

[JAVA] hasNextInt ๋ฉ”์†Œ๋“œ

๐Ÿ“– 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๊ฐ€ ์ •์ˆ˜๋กœ ๋„˜์–ด์˜ค์ง€ ์•Š๋Š” ..

article thumbnail
[JAVA] ๋ฌธ๋ฒ• : ํ˜•๋ณ€ํ™˜ ์ •๋ฆฌ

๐Ÿ“š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..

article thumbnail
[JAVA] String method

String ํด๋ž˜์Šค java.lang.String ํด๋ž˜์Šค C์–ธ์–ด์—์„œ๋Š” ๋ฌธ์ž์—ด์„ charํ˜• ๋ฐฐ์—ด๋กœ ํ‘œํ˜„ํ•˜์ง€๋งŒ, ์ž๋ฐ”์—์„œ๋Š” ๋ฌธ์ž์—ด์„ ์œ„ํ•œ String ํด๋ž˜์Šค๋ฅผ ๋ณ„๋„๋กœ ์ œ๊ณตํ•œ๋‹ค. String ํด๋ž˜์Šค์—๋Š” ๋ฌธ์ž์—ด๊ณผ ๊ด€๋ จ๋œ ์ž‘์—…์„ ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฉ”์†Œ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ String ํด๋ž˜์Šค๋Š” java.lang ํŒจํ‚ค์ง€์— ํฌํ•จ๋˜์–ด ์ œ๊ณต๋œ๋‹ค. String ์ธ์Šคํ„ด์Šค๋Š” ํ•œ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ๊ฐ’์„ ์ฝ๊ธฐ๋งŒ ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ณ€๊ฒฝ ํ•  ์ˆ˜๋Š” ์—†๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ์ฒด๋ฅผ ์ž๋ฐ”์—์„œ๋Š” ๋ถˆ๋ณ€ ๊ฐ์ฒด(immutable object)๋ผ๊ณ  ํ•œ๋‹ค. ์ฆ‰, ์ž๋ฐ”์—์„œ ๋ง์…ˆ(+)์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด, ๊ธฐ์กด ๋ฌธ์ž์—ด์˜ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‚ด์šฉ์ด ํ•ฉ์ณ์ง„ ์ƒˆ๋กœ์šด String ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด๋‹ค. charAt(..

article thumbnail
์„น์…˜4. HashMap, TreeSet ( ํ•ด์‰ฌ, ์ •๋ ฌ์ง€์› Set )

ํ•™๊ธ‰ ํšŒ์žฅ ์•„๋‚˜๊ทธ๋žจ(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..

article thumbnail
์„น์…˜ 3. Two points, Sliding window[ํšจ์œจ์„ฑ : O(n^2)-->O(n)]

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