์ ์ฒด ๊ธ
![[PGM_42587] ํ๋ฆฐํฐ (java)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvC1IR%2FbtruDCcsbvI%2FfiFrS6rlgFXq5REkyW5PFK%2Fimg.png)
[PGM_42587] ํ๋ฆฐํฐ (java)
๋ฌธ์ ๋งํฌ https://programmers.co.kr/learn/courses/30/lessons/42587 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ํ๋ฆฐํฐ ์ผ๋ฐ์ ์ธ ํ๋ฆฐํฐ๋ ์ธ์ ์์ฒญ์ด ๋ค์ด์จ ์์๋๋ก ์ธ์ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ค์ํ ๋ฌธ์๊ฐ ๋์ค์ ์ธ์๋ ์ ์์ต๋๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ค์๋๊ฐ ๋์ ๋ฌธ์๋ฅผ ๋จผ์ ์ธ์ํ๋ ํ๋ฆฐ programmers.co.kr ๋ฌธ์ ํ์ด ๐จ๐ป๐ป ํต์ฌ ์คํฌ ๐จ๐ป๐ป Queue ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ํฐ ๋ฌธ์๋ถํฐ ๋จผ์ ํ๋ฆฐํฐ๋ฅผ ํ๋ ๋ฌธ์ ์ด๋ค. ๋ง์ฝ ์ฐ์ ์์๊ฐ ๋๊ธฐ์ด์ ์๋ ํ๋ฆฐํฐ์ค์์ ์ ์ผ ๋์ง ์๋ค๋ฉด ๊ฐ์ฅ ๋ค๋ก ๋๊ฒจ์ ์ฒ๋ฆฌํด์ฃผ์ด์ผํ๋ค. ๋๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Queue๋ฅผ ์ฌ์ฉํ์๋ค. ๋ฌธ์๋ฅผ ํ๋ฆฐํฐํ๊ธฐ ์ํด ๋๊ธฐ์ด์์ ๋นผ๋ ๋ฐฉ๋ฒ์ ์์๋๋ก ๋นผ์ฃผ์ด์ผํ๋ฉฐ, ๋ง์ฝ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ง ์..
![์ธํฐํ์ด์ค์ default์ static ๋ฉ์๋ java8](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYMD9l%2FbtruHwCznf2%2FoglliXhywyYvknfUqy99N1%2Fimg.gif)
์ธํฐํ์ด์ค์ 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)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrBKrW%2FbtruAr3w6wC%2FZDKNw5t2hhSVfvzV9mkWak%2Fimg.png)
[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}}๋ก ๊ตฌ์ฑ๋ ์ ์์ผ๋ฉฐ, ์งํฉ์ ์์๋ ์๋ก ๋ฐ๋์ ์๋ค. ์ด ๋ ํํ๋ก ๋ง๋ค์ด์ง ์งํฉ์ ๋ณด๊ณ ํํ์ ๋ง๋ค์ด์ฃผ๋ฉด ํด๊ฒฐํ ์ ์๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๊ตฌ์ฑ๋ ์งํฉ์ ํฌ๊ธฐ๊ฐ ๊ฐ์ฅ ์์ ๊ฒ๋ถํฐ ํ์ธํด์ผํ๋ค. ์๋ํ๋ฉด ๊ฐ์ฅ ์์ ๊ฐ ์ค ํฌํจ๋์ง ์์ ๊ฐ์ ๋นผ๋ฉด ์์๋ฅผ ๊ตฌํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์์์์ ๋ณด์ฌ..
![ํจ์ํ ์ธํฐํ์ด์ค์ ๋๋ค์](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FctSPSZ%2FbtruFfBeIdv%2FPpXpiY04JhlvfSWKkKbvQk%2Fimg.gif)
ํจ์ํ ์ธํฐํ์ด์ค์ ๋๋ค์
ํจ์ํ ์ธํฐํ์ด์ค์ ๋๋ค์ ํจ์ํ ์ธํฐํ์ด์ค๋ฉ์๋๊ฐ ํ๋๋ง ์กด์ฌํ๋ ์ธํฐํ์ด์ค๋ฅผ ์๋ฏธํ๋ค. @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 ์ด..