백준 (BOJ) 11729번 https://www.acmicpc.net/problem/2108 사용언어 : PYTHON 1.문제 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. 2.풀이 최빈값을 구하는 것이 문제였는데, 파이썬의 내장 함수인 Collection모듈의 Counter을 사용하여 해결..
백준 (BOJ) 11729번 https://www.acmicpc.net/problem/1181 사용언어 : PYTHON 1.문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 1.길이가 짧은 것부터 2.길이가 같으면 사전 순으로 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 2.풀이 중복 제거는 set함수를 사용하여 제거하고, 정렬은 sort함수를 사용하여 정렬하였다. 이때 상위 조건 A과 하위 조건 B가 있는경우, B로 먼저 정렬 한 후에 A로 정렬해야 한다. 여기선 A가 길이가 짧은 것부터, B가 길이가 같으면 사전 순으로 이다. 따라서 사전 순으로 정렬하고 길이가 짧은 순으로 정렬해..
백준 (BOJ) 11729번 https://www.acmicpc.net/problem/11729 사용언어 : PYTHON 1.문제 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. *한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. *쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 2.풀이 재귀함수를 사용해서 풀어야 한다. 이전 포스팅에서 설명했던 암시적 매개변수인 각 장대를 명시적 매개변수 start, via end로 ..
@Autowired의 위치 setter 위 setter함수가 호출되면서 injection이 수행됨 field 위 기본 생성자를 호출하면서 injection이 수행됨 기본 생성자가 없다면 error발생(위 코드와 같은 경우 오류 발생) overload 생성자 위 overload 생성자에서 객체를 바인딩 위와 같이하게 되면 @Qualifier에 오류가 발생한다 overload생성자 같은 경우에 Exam을 두 개 이상 넣을 수 있다고 생각해서 오류가 발생하게 되는 것! 👇 파라미터 각자에 @Qualifier을 설정해서 해결 @Autowired의 required 속성 exam2라는 bean이 없는경우 어떻게 동작하는지 설정할 수 있는 속성이다. required=false로 설정을 하게 되면 해당 bean이 없는..
와 의 차이점 이미 등록된 bean에 대해서만 Annotation을 활성화 한다. 따라서 위 태그를 사용하더라도 xml에 bean을 반드시 선언해야 한다. @Autowired와 @Qualifier 두 가지만 해결한다. bean의 등록여부와 관계없다. 스프링이 알아서 bean스캔을 통해 Annotation을 해석하고 활성화한다. @Autowired와 @Qualifier뿐만 아니라 @Service, @Component, @Controller, @Repository 등 모든 클래스를 스캔하고 bean을 작성한다. 다만 base-package를 통해 스프링이 스캔할 패키지 위치를 지정해둬야 한다.
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가 두 개 있다..
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) ..
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..