java
-
[Programmers] Lv2. ๊ดํธ ํ์ ํ๊ธฐ(kotlin)SW Test/Programmers 2022. 9. 23. 17:36
๋ฌธ์ ์์ ํ์ด Stack์ ์ด์ฉํ ๋ํ์ ์ธ ๋ฌธ์ ์ธ ๊ดํธ ์ฐพ๊ธฐ์ ๋๋ค. Stack ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ kotlin์ ์๊ธฐ์ Java Util ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํฌํจ๋ Stack์ ์ด์ฉํ์๋ฉด ๋ฉ๋๋ค. import java.util.* class Solution { fun solution(s: String): Int { var answer: Int = 0 var tempStr = s first@ (1..s.length).forEach{ tempStr = tempStr.substring(1, tempStr.length) + tempStr.first() val stack = Stack() for(ch in tempStr){ if(stack.size == 0){ stack.add(ch) }else{ if(ch in arrayO..
-
[Kotlin] Companion Object ๋?Android/Kotlin 2021. 7. 5. 23:13
์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ ์์ฑํ์์ต๋๋ค. Java Static ํด๋์ค ๋ด๋ถ์ ๋ฉค๋ฒ ๋ณ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ํด๋์ค๋ฅผ ์์ฑํ๊ณ ์ธ์คํด์ค.๋ณ์์ ํํ๋ก ํธ์ถํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ๋ฌ ๊ฐ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค ์ ๊ฐ๊ฐ ๋ฉค๋ฒ ๋ณ์๊ฐ ์ ์ฅ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ํ์ง๋ง, ๋ชจ๋ ์ธ์คํด์ค์์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ณ์๊ฐ ์์ ๊ฒฝ์ฐ์๋ ์ฌ๋ฌ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋นํจ์จ์ ์ผ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ static ๋ณ์, ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ํด๋์ค์ ๋ชจ๋ ์ธ์คํด์ค์์๋ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. class Student { public String id; public String name; public static S..
-
[Kotlin] ์ ๊ทผ์ ํ์, property, get(), set()Android/Kotlin 2021. 7. 5. 01:18
์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด Kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ ์์ฑํ์์ต๋๋ค. ์ ๊ทผ์ ํ์ kotlin์ private, public, protected, internal 4๊ฐ์ง์ ์ ๊ทผ์ ํ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. kotlin์ Java์ ๋ค๋ฅธ์ ์ ํจํค์ง์๋ ๊ด๊ณ๊ฐ ์๊ณ , ๋ชจ๋์ ๋ํด์๋ง ์ ๊ทผ ์ ํ์ ๋๊ณ ์์ต๋๋ค. private : ์ธ๋ถ ์ด๋ค ๊ณณ์์๋ ์ ๊ทผํ ์ ์์ต๋๋ค. public : ์ธ๋ถ ์ด๋์๋ ์ง ์ ๊ทผํ ์ ์์ต๋๋ค. protected : ํด๋์ค ์ ์ธ์์๋ ์ฌ์ฉ ๋ถ๊ฐ, ์์๋ ํด๋์ค์์๋ง ์ ๊ทผํ ์ ์์ต๋๋ค. internal : ๊ฐ์ ๋ชจ๋ ๋ด์์๋ง ์ ๊ทผํ ์ ์์ต๋๋ค. property ๊ฐ์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํน์ง ์ค ํ๋์ธ ์บก์ํ๋ ์ธ๋ถ๋ก๋ถํฐ ํด๋์ค ๋ด๋ถ ๋ณ์๋ฅผ ์ง์ ์ ๊ทผ์ ์ฐจ๋จํ..
-
[Kotlin] ํด๋์ค ์์ฑ๊ณผ ์์Android/Kotlin 2021. 7. 4. 21:05
์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด Kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์์ฑํ ๋ด์ฉ์ ๋๋ค. ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ (Object Oriented Programming) Kotlin์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ๊ณผ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ ๊ฐ๋ฅํฉ๋๋ค. ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด๋ ์ฌ๋ฌ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ ์์ฑ๋ค์ ํ๋์ ๊ฐ์ฒด๋ก ํํํ์ฌ ๋ฐ์ดํฐ์ ๊ธฐ๋ฅ๋ค์ ๊ด๋ฆฌํ๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ์ ๋๋ค. Java์ ๊ฐ์ด ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํ๊ธฐ ์ํด์ ํด๋์ค์ ์์ฑ๊ณผ ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํ๋ ค๊ณ ํฉ๋๋ค. ํด๋์ค ์์ฑ class Student{ var id: Int = 0 var name : String = "ows" } fun main() { var obj = Student() print("${obj.id} ${obj..
-
[Java] ๋์์ธ ํจํด(Composite ํจํด)์นดํ ๊ณ ๋ฆฌ ์์ 2021. 5. 18. 00:45
์ด ๊ธ์ "์ํํ ์ฝ๋ฉ์ฌ์ ๊ฐ์ฒด์งํฅ ๋์์ธํจํด Youtube ์์"์ ๋ณด๊ณ ์ฐธ๊ณ ํ์ฌ ์์ฑํ์์ต๋๋ค. Composite ํจํด์ด๋? Composite ํจํด์ ๋ณต์กํ ์ค๊ณ๋ฅผ ํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ ํจํด์ผ๋ก ์ปดํจํฐ ํ์ผ ์์คํ ์ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค. ์ปดํจํฐ ํ์ผ ์์คํ ์์๋ ํด๋ ๋ด๋ถ์ ํ์ผ๋ ๋ค์ด๊ฐ ์ ์์ง๋ง, ํด๋ ์์ฒด๋ ๋ค์ด๊ฐ ์ ์์ต๋๋ค. ๋ํ, ํ์ผ๊ณผ ํด๋๋ ๋ค๋ฅธ ์กด์ฌ์ง๋ง ๊ฐ๊ฐ ํฌ๊ธฐ๊ฐ ์กด์ฌํ๊ณ ์ด๋ฆ ๋ฐ๊พธ๊ธฐ, ์ญ์ ํ๊ธฐ ๋ฑ๊ณผ ๊ฐ์ ๋ช ๋ น์ด๋ ๊ณตํต์ ์ผ๋ก ์ฃผ์ด์ง๋๋ค. ์ด์ฒ๋ผ Composite ํจํด์ ํฌํจ๋๋ ๊ฐ์ฒด์ ํฌํจํ๋ ๊ฐ์ฒด๊ฐ ๋์ผํ๊ฒ ๋ค๋ค์ง ๋ ์ฌ์ฉํ๋ ํจํด์ ๋๋ค. Composite ์ฌ์ฉ public interface FileSystem { int getSize(); void printInfo(); } Fil..
-
[Java] ๋์์ธ ํจํด(Mediator ํจํด)Android/Java 2021. 5. 18. 00:14
Mediator ํจํด์ด๋? Mediator ๋ง ๊ทธ๋๋ก ์ค์ฌ์๋ก์, ํด๋์ค๊ฐ ๋ค๋ฅธ ํด๋์ค์์ ์ฐ๊ฒฐ์ฑ์ ์ง์ ํ๋ ๊ฒ์ด ์๋ ์ค์ฌ์๋ฅผ ํตํด ์ฐ๊ฒฐํ๋ ํจํด์ ๋๋ค. ํ์ฌ์ ์๊ธ์๊ฐ ๋น์๋ฅผ ํตํด ๋ค๋ฅธ ์ง์๋ค์๊ฒ ์๊ธ์์ ์๊ฒฌ์ ๋ชจ๋์๊ฒ ์ ๋ฌํ๋ฏ, ํด๋์ค๊ฐ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋์๊ฒ ์ผ์ผ์ด ์ ๋ฌํ๋ ๊ฒ์ด ์๋ Mediator๊ฐ ์ํํ๋๋ก ๋ง๋๋ ํจํด์ ๋๋ค. Mediator ํจํด์ ์ค๋ช ํ๊ธฐ ์ ์ Mediator ์ฌ์ฉํ๊ธฐ ์ ์ ์ฝ๋์ ๋ถํธํจ์ ์ ์๊ณ ๋๋ฉด ๋ ์ดํดํ๊ธฐ ์ฝ์ต๋๋ค. public interface Subject { void isTimetoSubject(String type); } Subject๋ผ๋ ์ธํฐํ์ด์ค๋ type์ ํด๋นํ๋ ๊ณผ๋ชฉ์ ๋ฃ๋ ์๊ฐ์ด ๋ง๋์ง์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๊ตฌํ๋๋ isTimetoSubject ๋ฉ์๋..
-
[Java] ๋์์ธ ํจํด(Template ํจํด)Android/Java 2021. 5. 17. 22:13
Template ํจํด์ด๋? ๋ํ์์ด๋ผ๋ฉด PPT๋ก ๋ฐํํ ๊ฒฝํ์ ์์ ๊ฒ์ ๋๋ค. PPT ๋ฐํ ์๋ฃ๋ฅผ ์ง์ ๊พธ๋ฉฐ์ ๋ง๋๋ ํ์๋ ์์ ์ ์๊ฒ ์ง๋ง, ๋์์ธ ๊ฐ๊ฐ์ด ์๋ ์ฌ๋์๊ฒ๋ ์ด๋ ค์ธ ์ ์์ต๋๋ค. ์ด ๋, ๋๋ถ๋ถ์ PPT ํ ํ๋ฆฟ์ ๊ฒ์ํ์ฌ ํ ํ๋ฆฟ์ ๋ด์ฉ๋ง ์ถ๊ฐํ๋ ๋ฐฉ์์ผ๋ก ์๋ฃ๋ฅผ ๋ง๋ค ๊ฒ์ ๋๋ค. ์ด์ฒ๋ผ Template ํจํด์ด๋ ์ ๋ฐ์ ์ธ ๊ณผ์ ๊ฐ์ ํฐ ํ๋ง ์ฃผ์ด์ง๊ณ , ์ธ๋ถ์ ์ธ ๋ฉ์๋๋ค์ ์ํ๋ ์คํ์ผ์ ๋ง๊ฒ ๊ตฌํํ๋ ํจํด์ ๋๋ค. ์ ๋ฐ์ ์ธ ๊ณผ์ ์์ ๊ณตํต๋ ์ ์ฐจ๊ฐ ์์ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ฉด ํจ๊ณผ์ ์ธ ํจํด์ ๋๋ค. Template ์ฌ์ฉ public abstract class Movie { protected abstract void connectMovieServer(); protected abstract void down..
-
[Java] ๋์์ธ ํจํด(Proxy ํจํด)Android/Java 2021. 5. 14. 01:28
Proxy ํจํด์ด๋? ํด๋์ค๋ฅผ ์์ฑ ์์ ๊ฐ๋ฒผ์ด ์์ ์ ๋ํ ๋ฉ์๋๋ ์คํํ๋, ๋ฌด๊ฑฐ์ด ์์ ์ผ ๊ฒฝ์ฐ ๋ค๋ฅธ ํด๋์ค์ ๋ฉ์๋๋ฅผ ์คํํ๋ ํจํด์ ๋๋ค, ์ฆ, ๋๋ฆฌ์ธ(Proxy) ์ญํ ํ ์ ์๋ ํด๋์ค๊ฐ ๊ฐ๋ฒผ์ด ์์ ์ ์คํํ๋ค๊ฐ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋๋ค๋๊ฐ, ๋์์ ์ฌ์ ์์๋ ์ฃผ์ ํด๋์ค๊ฐ ์คํํ๋๋ก ํฉ๋๋ค. Proxy ํจํด์ ์ฌ์ฉํจ์ผ๋ก์จ ๋ฌด๊ฑฐ์ด ์์ ์ ํด์ผํ ๊ฒฝ์ฐ์๋ง ํด๋์ค๋ฅผ ์์ฑํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. Proxy ํจํด ์ฌ์ฉ public interface Scorer { void multipleChoice(); void shortAnswer(); } Scorer ์ธํฐํ์ด์ค๋ ๊ฐ๊ด์๊ณผ ์ฃผ๊ด์์ ์ฑ์ ํ ์ ์๋ ์ฑ์ ๊ด์ ๋ปํ๋ ์ธํฐํ์ด์ค์ ๋๋ค. ๊ฐ๊ด์์ ์๋์ ์ผ๋ก ์ ๋ต์ด ์์ผ๋ฉด ์ฝ๊ฒ ์ฑ์ ํ ..