전체보기

🥇코딩테스트:Algorithm

[백준 1181번-파이썬]단어 정렬

백준 (BOJ) 11729번 https://www.acmicpc.net/problem/1181 사용언어 : PYTHON 1.문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 1.길이가 짧은 것부터 2.길이가 같으면 사전 순으로 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 2.풀이 중복 제거는 set함수를 사용하여 제거하고, 정렬은 sort함수를 사용하여 정렬하였다. 이때 상위 조건 A과 하위 조건 B가 있는경우, B로 먼저 정렬 한 후에 A로 정렬해야 한다. 여기선 A가 길이가 짧은 것부터, B가 길이가 같으면 사전 순으로 이다. 따라서 사전 순으로 정렬하고 길이가 짧은 순으로 정렬해..

🥇코딩테스트:Algorithm

[백준 11729번-파이썬]하노이 탑 이동 순서

백준 (BOJ) 11729번 https://www.acmicpc.net/problem/11729 사용언어 : PYTHON 1.문제 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. *한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. *쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 2.풀이 재귀함수를 사용해서 풀어야 한다. 이전 포스팅에서 설명했던 암시적 매개변수인 각 장대를 명시적 매개변수 start, via end로 ..

💎백엔드 : Backend

[Spring] @Autowired의 위치와 Required옵션

@Autowired의 위치 setter 위 setter함수가 호출되면서 injection이 수행됨 field 위 기본 생성자를 호출하면서 injection이 수행됨 기본 생성자가 없다면 error발생(위 코드와 같은 경우 오류 발생) overload 생성자 위 overload 생성자에서 객체를 바인딩 위와 같이하게 되면 @Qualifier에 오류가 발생한다 overload생성자 같은 경우에 Exam을 두 개 이상 넣을 수 있다고 생각해서 오류가 발생하게 되는 것! 👇 파라미터 각자에 @Qualifier을 설정해서 해결 @Autowired의 required 속성 exam2라는 bean이 없는경우 어떻게 동작하는지 설정할 수 있는 속성이다. required=false로 설정을 하게 되면 해당 bean이 없는..

💎백엔드 : Backend

[Spring] <context : annotation-config> vs <context : component-scan>

와 의 차이점 이미 등록된 bean에 대해서만 Annotation을 활성화 한다. 따라서 위 태그를 사용하더라도 xml에 bean을 반드시 선언해야 한다. @Autowired와 @Qualifier 두 가지만 해결한다. bean의 등록여부와 관계없다. 스프링이 알아서 bean스캔을 통해 Annotation을 해석하고 활성화한다. @Autowired와 @Qualifier뿐만 아니라 @Service, @Component, @Controller, @Repository 등 모든 클래스를 스캔하고 bean을 작성한다. 다만 base-package를 통해 스프링이 스캔할 패키지 위치를 지정해둬야 한다.

💎백엔드 : Backend

[Spring]@Autowired동작방식과 @Qualifier

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]어노테이션을 이용할 때 장점과 @Autowired를 이용한 DI

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]콜렉션 생성과 DI

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]DI 지시서

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한..

mc.thd
'분류 전체보기' 카테고리의 글 목록 (13 Page)