๐ฅ์ฝ๋ฉํ
์คํธ:Algorithm
๋ฐฑ์ค (BOJ) 11729๋ฒ https://www.acmicpc.net/problem/1181 ์ฌ์ฉ์ธ์ด : PYTHON 1.๋ฌธ์ ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง N๊ฐ์ ๋จ์ด๊ฐ ๋ค์ด์ค๋ฉด ์๋์ ๊ฐ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. 1.๊ธธ์ด๊ฐ ์งง์ ๊ฒ๋ถํฐ 2.๊ธธ์ด๊ฐ ๊ฐ์ผ๋ฉด ์ฌ์ ์์ผ๋ก ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ๋ ฌํ์ฌ ๋จ์ด๋ค์ ์ถ๋ ฅํ๋ค. ๋จ, ๊ฐ์ ๋จ์ด๊ฐ ์ฌ๋ฌ ๋ฒ ์
๋ ฅ๋ ๊ฒฝ์ฐ์๋ ํ ๋ฒ์ฉ๋ง ์ถ๋ ฅํ๋ค. 2.ํ์ด ์ค๋ณต ์ ๊ฑฐ๋ setํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ฑฐํ๊ณ , ์ ๋ ฌ์ sortํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฌํ์๋ค. ์ด๋ ์์ ์กฐ๊ฑด A๊ณผ ํ์ ์กฐ๊ฑด B๊ฐ ์๋๊ฒฝ์ฐ, B๋ก ๋จผ์ ์ ๋ ฌ ํ ํ์ A๋ก ์ ๋ ฌํด์ผ ํ๋ค. ์ฌ๊ธฐ์ A๊ฐ ๊ธธ์ด๊ฐ ์งง์ ๊ฒ๋ถํฐ, B๊ฐ ๊ธธ์ด๊ฐ ๊ฐ์ผ๋ฉด ์ฌ์ ์์ผ๋ก ์ด๋ค. ๋ฐ๋ผ์ ์ฌ์ ์์ผ๋ก ์ ๋ ฌํ๊ณ ๊ธธ์ด๊ฐ ์งง์ ์์ผ๋ก ์ ๋ ฌํด..
๐ฅ์ฝ๋ฉํ
์คํธ:Algorithm
๋ฐฑ์ค (BOJ) 11729๋ฒ https://www.acmicpc.net/problem/11729 ์ฌ์ฉ์ธ์ด : PYTHON 1.๋ฌธ์ ์ธ ๊ฐ์ ์ฅ๋๊ฐ ์๊ณ ์ฒซ ๋ฒ์งธ ์ฅ๋์๋ ๋ฐ๊ฒฝ์ด ์๋ก ๋ค๋ฅธ n๊ฐ์ ์ํ์ด ์์ฌ ์๋ค. ๊ฐ ์ํ์ ๋ฐ๊ฒฝ์ด ํฐ ์์๋๋ก ์์ฌ์๋ค. ์ด์ ์๋์น๋ค์ด ๋ค์ ๊ท์น์ ๋ฐ๋ผ ์ฒซ ๋ฒ์งธ ์ฅ๋์์ ์ธ ๋ฒ์งธ ์ฅ๋๋ก ์ฎ๊ธฐ๋ ค ํ๋ค. *ํ ๋ฒ์ ํ ๊ฐ์ ์ํ๋ง์ ๋ค๋ฅธ ํ์ผ๋ก ์ฎ๊ธธ ์ ์๋ค. *์์ ๋์ ์ํ์ ํญ์ ์์ ๊ฒ์ด ์๋์ ๊ฒ๋ณด๋ค ์์์ผ ํ๋ค. ์ด ์์
์ ์ํํ๋๋ฐ ํ์ํ ์ด๋ ์์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ. ๋จ, ์ด๋ ํ์๋ ์ต์๊ฐ ๋์ด์ผ ํ๋ค. 2.ํ์ด ์ฌ๊ทํจ์๋ฅผ ์ฌ์ฉํด์ ํ์ด์ผ ํ๋ค. ์ด์ ํฌ์คํ
์์ ์ค๋ช
ํ๋ ์์์ ๋งค๊ฐ๋ณ์์ธ ๊ฐ ์ฅ๋๋ฅผ ๋ช
์์ ๋งค๊ฐ๋ณ์ start, via end๋ก ..
๐๋ฐฑ์๋ : Backend
@Autowired์ ์์น setter ์ setterํจ์๊ฐ ํธ์ถ๋๋ฉด์ injection์ด ์ํ๋จ field ์ ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ํธ์ถํ๋ฉด์ injection์ด ์ํ๋จ ๊ธฐ๋ณธ ์์ฑ์๊ฐ ์๋ค๋ฉด error๋ฐ์(์ ์ฝ๋์ ๊ฐ์ ๊ฒฝ์ฐ ์ค๋ฅ ๋ฐ์) overload ์์ฑ์ ์ overload ์์ฑ์์์ ๊ฐ์ฒด๋ฅผ ๋ฐ์ธ๋ฉ ์์ ๊ฐ์ดํ๊ฒ ๋๋ฉด @Qualifier์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค overload์์ฑ์ ๊ฐ์ ๊ฒฝ์ฐ์ Exam์ ๋ ๊ฐ ์ด์ ๋ฃ์ ์ ์๋ค๊ณ ์๊ฐํด์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ ๊ฒ! ๐ ํ๋ผ๋ฏธํฐ ๊ฐ์์ @Qualifier์ ์ค์ ํด์ ํด๊ฒฐ @Autowired์ required ์์ฑ exam2๋ผ๋ bean์ด ์๋๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์ค์ ํ ์ ์๋ ์์ฑ์ด๋ค. required=false๋ก ์ค์ ์ ํ๊ฒ ๋๋ฉด ํด๋น bean์ด ์๋..
๐๋ฐฑ์๋ : Backend
์ ์ ์ฐจ์ด์ ์ด๋ฏธ ๋ฑ๋ก๋ bean์ ๋ํด์๋ง Annotation์ ํ์ฑํ ํ๋ค. ๋ฐ๋ผ์ ์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋๋ผ๋ xml์ bean์ ๋ฐ๋์ ์ ์ธํด์ผ ํ๋ค. @Autowired์ @Qualifier ๋ ๊ฐ์ง๋ง ํด๊ฒฐํ๋ค. bean์ ๋ฑ๋ก์ฌ๋ถ์ ๊ด๊ณ์๋ค. ์คํ๋ง์ด ์์์ bean์ค์บ์ ํตํด Annotation์ ํด์ํ๊ณ ํ์ฑํํ๋ค. @Autowired์ @Qualifier๋ฟ๋ง ์๋๋ผ @Service, @Component, @Controller, @Repository ๋ฑ ๋ชจ๋ ํด๋์ค๋ฅผ ์ค์บํ๊ณ bean์ ์์ฑํ๋ค. ๋ค๋ง base-package๋ฅผ ํตํด ์คํ๋ง์ด ์ค์บํ ํจํค์ง ์์น๋ฅผ ์ง์ ํด๋ฌ์ผ ํ๋ค.
๐๋ฐฑ์๋ : Backend
Spring @Autowired๋ ์๋ฃํ์ ๊ธฐ์ค์ผ๋ก ์ฐพ๋๋ค Exam๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ id="exam"์ ์ง์ ๋ค. ์คํํ๋ฉด ์ฑ๊ณต์ ์ผ๋ก ์๋ํ๋ค. ๐ @Autowired๋ ์๋ฃํ์ ๊ธฐ์ค์ผ๋ก ์ฐ๊ฒฐํ๋ค(๊ธฐ๋ณธ๋์) ๋ณ์๋ช
์ ๊ธฐ์ค์ผ๋ก ์ฐ๊ฒฐํ๊ธฐ๋ ํจ (๋ฐ์ ๋์ด) @Qualifier public class InlineExamConsole implements ExamConsole { private Exam exam; ... @Autowired @Qualifier("exam1") @Override public void setExam(Exam exam) { this.exam = exam; } } @Qualifier๋ฅผ ์ฌ์ฉํ์ฌ exam1์ Autowiredํ๋๋ก ์ค์ ํ๋ค. exam๊ฐ์ฒด exam1๊ณผ exam2๊ฐ ๋ ๊ฐ ์๋ค..
๐๋ฐฑ์๋ : Backend
Spring โญXml->Annotation (์ถ์ฒ:https://www.youtube.com/watch?v=S065KRjXRSY&list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T&index=12&t=90s) XML์ ์ด์ฉํ๋ค๋ฉด B2๋ฅผ B3๋ก ๋ฐ๊พธ๊ณ ์ถ์๋ ์ค์ ํ์ผ ์ฝ๋๋ฅผ ์์ ํด์ผ ํ๋ค. ์์ค์ฝ๋๋ฅผ ๋ฐ๊พธ์ง ์๊ณ ์ค์ ํ์ผ๋ง ์์ ํ ์ ์๋ค๋ ์ ์ด ์์ ์๋ ์ข์์ง๋ง, ์ค์ ํ์ผ์ ์์ ํ๋๊ฒ์ ๋ถํธํจ์ ๋๋ผ๊ฒ ๋์๋ค. ์์ค์ฝ๋์ ์ค์ ์ ์ฌ๋ ์ด๋
ธํ
์ด์
์ ํ์ฉํ๊ธฐ ์์ํ๋ค. โญ@Autowired์ ์ด์ฉํ DI (์ถ์ฒ:https://www.youtube.com/watch?v=S065KRjXRSY&list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T&index=12&t=90s) ..
๐๋ฐฑ์๋ : Backend
Spring toString (์๋ฐ์ ๊ฐ์) ๊ฐ์ฒด์งํฅ ์ธ์ด๋ค์ ๊ฐ์ฒด์ toString์ด๋ผ๋ ๋ฉ์๋๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ค. ์ผ๋ฐ์ ์ผ๋ก toString์ ๊ทธ ๊ฐ์ฒด๋ฅผ ์ค๋ช
ํด์ฃผ๋ ๋ฌธ์์ด์ ๋ฆฌํดํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฒด์ toString์ ๋ฎ์ด์ฐ๊ธฐ(overriding)ํ๋ฉด ๋ค๋ฅธ ํ์์ ๋ฌธ์์ด์ ๋ฆฌํดํ ์ ์๋ค. ๋ฌธ์์ด์ด ๊ธฐ๋๋๋ ๊ณณ์์ ๋ฌธ์์ด์ด ์๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด ์์คํ
์ ์์์ ์ผ๋ก toString์ ํธ์ถํ๋ค. โญ์์ java ์ฝ๋ ์
์์ฑ public class Program { public static void main(String[] args) { List exams = new ArrayList(); exams.add(new NewlecExam(1,1,1,1)); for(Exam e : exams) System.o..
๐๋ฐฑ์๋ : Backend
Spring โญSpring์ฌ์ฉํ์ง ์์ DI package spring.di; public class Program { public static void main(String[] args) { Exam exam = new NewlecExam(1,2,3,4); ExamConsole console = new GridExamConsole(); console.setExam(exam); // DI console.print(); } } >>> โโโโโโโโโโโฌโโโโโโโโโโ โ total โ avg โ โโโโโโโโโโโผโโโโโโโโโโค โ 10 โ 2.50 โ โโโโโโโโโโโดโโโโโโโโโโspring์ ์ฌ์ฉํ์ง ์๊ณ exam์ด๋ผ๋ dependecy๋ฅผ ๋ง๋ค์ด์ console์ injectionํ..