์ „์ฒด ๊ธ€

์ „์ฒด ๊ธ€

    [PGM_42587] ํ”„๋ฆฐํ„ฐ  (java)

    [PGM_42587] ํ”„๋ฆฐํ„ฐ (java)

    ๋ฌธ์ œ๋งํฌ https://programmers.co.kr/learn/courses/30/lessons/42587 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํ”„๋ฆฐํ„ฐ ์ผ๋ฐ˜์ ์ธ ํ”„๋ฆฐํ„ฐ๋Š” ์ธ์‡„ ์š”์ฒญ์ด ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•œ ๋ฌธ์„œ๊ฐ€ ๋‚˜์ค‘์— ์ธ์‡„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์š”๋„๊ฐ€ ๋†’์€ ๋ฌธ์„œ๋ฅผ ๋จผ์ € ์ธ์‡„ํ•˜๋Š” ํ”„๋ฆฐ programmers.co.kr ๋ฌธ์ œํ’€์ด ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป ํ•ต์‹ฌ ์Šคํ‚ฌ ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป Queue ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ํฐ ๋ฌธ์„œ๋ถ€ํ„ฐ ๋จผ์ € ํ”„๋ฆฐํ„ฐ๋ฅผ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋งŒ์•ฝ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋Œ€๊ธฐ์—ด์— ์žˆ๋˜ ํ”„๋ฆฐํ„ฐ์ค‘์—์„œ ์ œ์ผ ๋†’์ง€ ์•Š๋‹ค๋ฉด ๊ฐ€์žฅ ๋’ค๋กœ ๋„˜๊ฒจ์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค. ๋‚˜๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Queue๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๋ฌธ์„œ๋ฅผ ํ”„๋ฆฐํ„ฐํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐ์—ด์—์„œ ๋นผ๋Š” ๋ฐฉ๋ฒ•์€ ์ˆœ์„œ๋Œ€๋กœ ๋นผ์ฃผ์–ด์•ผํ•˜๋ฉฐ, ๋งŒ์•ฝ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์ง€ ์•Š..

    ์ธํ„ฐํŽ˜์ด์Šค์˜  default์™€ static ๋ฉ”์†Œ๋“œ java8

    ์ธํ„ฐํŽ˜์ด์Šค์˜ default์™€ static ๋ฉ”์†Œ๋“œ java8

    java8์˜ ์ธํ„ฐํŽ˜์ด์Šค default Method java8์—์„œ ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ„ฐํŽ˜์ด์Šค์— ๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ธฐ๋ณธ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ์ด์œ ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ตฌํ˜„์ฒด๋“ค์ด ๊ณตํ†ต๋œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. default๋กœ ์ถ”๊ฐ€ํ•ด์คŒ์œผ๋กœ์จ ์›๋ž˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋˜ ๊ตฌํ˜„์ฒด์—์„œ ์ƒˆ๋กœ์šด ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค. Default Method ๊ตฌํ˜„ ๋ฐฉ๋ฒ• public interface Foo { String getName(); default void printUpperName() { System.out.println(getName().toUpperCase()); } } ์œ„ ์ฒ˜๋Ÿผ default๋ฅผ ํ™œ์šฉํ•ด ๋ฉ”์†Œ๋“œ๋ฅผ interface์—์„œ ๊ตฌํ˜„ํ•ด ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์ด ์ธํ„ฐ..

    [pgm_64065] ํŠœํ”Œ (java)

    [pgm_64065] ํŠœํ”Œ (java)

    ๋ฌธ์ œ๋งํฌ https://programmers.co.kr/learn/courses/30/lessons/64065 ๋ฌธ์ œํ’€์ด ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป ํ•ต์‹ฌ ์Šคํ‚ฌ ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป Set ํŠœํ”Œ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ์ง‘ํ•ฉ์ด input์œผ๋กœ ๋“ค์–ด์˜ค๊ณ  ๊ฐ’๋“ค์„ ํ™•์ธํ•˜์—ฌ ํŠœํ”Œ์„ ์ฐพ์•„๋‚ด๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด ๋•Œ ํŠœํ”Œ์˜ ์ˆ˜๊ฐ€ (a1,a2,a3,a4)๋ผ๊ณ  ํ•˜๋ฉด ์ด ๊ฒƒ์œผ๋กœ ๋งŒ๋“ค์ˆ˜ ์žˆ๋Š” ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ์„ {{a1},{a1,a2},{a1,a2,a3},{a1,a2,a3,a4}}๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ง‘ํ•ฉ์˜ ์ˆœ์„œ๋Š” ์„œ๋กœ ๋ฐ”๋€”์ˆ˜ ์žˆ๋‹ค. ์ด ๋•Œ ํŠœํ”Œ๋กœ ๋งŒ๋“ค์–ด์ง„ ์ง‘ํ•ฉ์„ ๋ณด๊ณ  ํŠœํ”Œ์„ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ตฌ์„ฑ๋œ ์ง‘ํ•ฉ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ๋ถ€ํ„ฐ ํ™•์ธํ•ด์•ผํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’ ์ค‘ ํฌํ•จ๋˜์ง€ ์•Š์€ ๊ฐ’์„ ๋นผ๋ฉด ์ˆœ์„œ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์˜ˆ์‹œ์—์„œ ๋ณด์—ฌ..

    ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋žŒ๋‹ค์‹

    ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋žŒ๋‹ค์‹

    ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋žŒ๋‹ค์‹ ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค๋ฉ”์†Œ๋“œ๊ฐ€ ํ•˜๋‚˜๋งŒ ์กด์žฌํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค. @FunctionalInterface public interface RunSomething { //์ถ”์ƒ ๋ฉ”์†Œ๋“œ๊ฐ€ ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉด ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค abstract int doIt(int number); // static void printName(){ // System.out.println("jinseop"); // } // // default void printAge(){ // System.out.println("26"); // } } @FunctionalInterface annotation์„ ๋ฐ˜๋“œ์‹œ ๋ถ™์—ฌ์ฃผ์–ด ์ •์˜ํ•˜๊ณ  ์ถ”์ƒ๋ฉ”์†Œ๋“œ ํ•˜๋‚˜๋งŒ ์กด์žฌํ•˜๋ฉด ๋จ(abstract๋Š” ์ƒ๋žต๊ฐ€๋Šฅ) ์ด ๋•Œ default์™€ static ์–ด..