본문 바로가기
  • 실행력이 모든걸 결정한다
반응형

분류 전체보기580

[Tree] 길 찾기 게임 - 2019 KAKAO BLIND RECRUITMENT 필자의 풀이보다 더 괜찮아보이는 코드를 발견해서 이를 공유하고 설명해보겠다. 해결 방법1 처음은 nodeinfo를 x좌표를 오름차순으로 정렬한다. 그리고 아래의 2가지 규칙을 기반으로 재귀 방식으로 트리를 만들어나가는 방법이다. 임의의 노드 V의 왼쪽 서브 트리(left subtree)에 있는 모든 노드의 x값은 V의 x값보다 작다. 임의의 노드 V의 오른쪽 서브 트리(right subtree)에 있는 모든 노드의 x값은 V의 x값보다 크다. 트리를 만들기 위한 첫 단계는 전체 트리의 루트 노드를 찾는 것으로, 루트 노드는 y 좌표가 최댓값인 노드이다. nodeinfo는 x좌표를 기준으로 정렬되어 있기 때문에 nodeinfo에서 루트 노드를 기준으로 왼쪽 요소들의 x좌표는 모두 루트 노드의 x좌표보다 작.. 2022. 6. 19.
Spring @Bean 메소드 파라미터의 의존관계 주입 Spring은 @Bean 메소드의 파라미터를 통하여 bean 의존관계를 주입할 수 있는 메커니즘을 제공한다. @Configuration이 붙은 클래스도 하나의 bean이고, @Bean이 @Autowired를 포함하고 있다고 생각하면 이해하기 쉽다. https://www.logicbig.com/tutorials/spring-framework/spring-core/javaconfig-methods-inter-dependency.html Spring - Dependency injection in @Bean method parameters Spring - Dependency injection in @Bean method parameters [Last Updated: Nov 6, 2021] www.logicbig.. 2022. 6. 18.
정보처리기사 한방 합격 4학년이 되자마자 바로 2022년 1회차 시험을 응시했습니다. 전공자, 현업자에게도 쉽지 않다는 말이 있기도 했고 실제로 실기 합격률도 많이 낮아져서 나름 열심히 했던 것 같아요. 이번 2022년 1회차의 필기 합격률과 실기 합격률은 각각 64%, 25.4%로 난이도는 [중]이었다고 할 수 있겠습니다. 저는 시나공 교재로 공부했고요, 시나공이 출제 빈도에 따라서 챕터의 중요도를 A, B, C, D로 나눠놓아서 중요한 챕터 위주로 많이 볼 수 있었습니다. 필기는 92점, 실기는 75점을 맞았는데.. 실기에서 5문제 틀린 것도 제 허점이자 실력이라고 생각하고 더 열심히 공부할 생각입니다. 아직 합격하지 못하신 분들을 위해 몇가지 조언을 드리겠습니다. 1) 어느 파트에서보다도 특히 SQL, 프로그래밍 파트에서.. 2022. 6. 17.
[Spring] @Qualifier 이란? 1. Spring이 제공하는 @Qualifier의 기능 - 타입 외의 부가 정보를 추가해서 자동 와이어링을 세밀하게 제어할 수 있는 방법이다. - 타입을 기준으로 자동 와이어링하는 환경에서, 동일한 타입이 2개 이상 존재하는 bean들 중 하나의 bean을 선택할 때 유용하다. - 지정한 qualifier를 가진 bean이 없다면, 이름이 해당 qualifier값인 bean을 검색한다. 2. Bean에 qualifier 설정 1) XML 설정 방식 - 안에 qualifier값을 지정하면 된다. 2022. 6. 17.
[Spring] @Autowired의 4가지 사용 방법 @Autowired 어노테이션은 타입에 의한 자동와이어링 방식으로 bean을 가져오는 역할을 한다. 같은 타입의 Bean이 두 개 이상 존재하는 경우에는 변수의 이름과 같은 이름의 Bean을 가져온다. 변수 이름으로 Bean을 찾을 수 없는 경우에는 예외가 발생한다. 그리고 @Autowired는 필드, 수정자, 생성자, 일반 메소드에 사용할 수 있다. 간단한 예시를 통해 그 사용법을 알아보자. 1. 필드 주입 - 필드의 타입에 맞는 bean을 자동으로 찾아서 주입 시켜주는 방식이다. @Autowired private Printer printer; 2. 수정자 주입 - 수정자 메소드의 이름으로부터 프로퍼티 타입을 알아내고 프로퍼티 타입에 맞는 bean을 자동으로 찾아서 필드에 주입 시켜주는 방식이다. - .. 2022. 6. 17.
[String] 매칭 점수 - 2019 KAKAO BLIND RECRUITMENT 해결 방법 이 문제는 특별한 알고리즘을 요구하지는 않고, 문자열 파싱과 구현만 잘 해준다면 해결할 수 있다. 웹 페이지의 url은 meta 태그의 content 속성에 있다는 사실, 외부 링크는 a 태그의 href 속성에 있다는 사실, 그리고 단어는 알파벳을 제외한 다른 모든 문자로 구분한다는 사실을 잊지 말도록 하자. 구현 방식은 문제 설명에서 자세히 나와있으므로 이제 틀리기 쉬운 테스트케이스를 짚어보겠다. - 링크점수 또는 매칭점수를 float형으로 두고 계산하면 테스트케이스 8번에서 막히기 쉽다. 정밀도(유효자릿수)가 더 높은 double형을 사용하자. float의 유효자릿수는 7이고, double의 유효자릿수는 15이다. - 웹 페이지의 url을 추출하기 위해 "content="를 기준으로 찾는 .. 2022. 6. 7.
[Spring] IoC 컨테이너를 통해 애플리케이션이 만들어지는 방식 1. 메타정보 리소스 - 설정 메타정보의 내용을 표현한 리소스를 말한다. - 일반적으로 xml 파일이나 annotation같은 외부 리소스를 말한다. - 성격, 관리 주체, 계층, 팀 등에 따라 여러 리소스 파일을 분리하여 하나의 컨텍스트에 등록할 수도 있다. 2. 메타정보 리더 - 메타정보 리소스를 읽는 오브젝트를 말한다. - 일반적으로 BeanDefinitionReader 인터페이스 타입의 오브젝트를 사용한다. 3. 설정 메타정보 - Bean을 어떻게 만들고 어떻게 동작하게 할 것인가에 대한 정보다. - 일반적으로 메타정보는 BeanDefinition 인터페이스 타입의 오브젝트에 담는다. Bean 설정 정보 : BeanDefinition의 핵심 항목 더보기 ※ 이미지는 https://title-dev.. 2022. 6. 7.
[시뮬레이션] 프렌즈4블록 - 2018 KAKAO BLIND RECRUITMENT 해결 방법 필자는 아래 이미지처럼 2차원 벡터를 이용하여 아래 블록부터 각 열 벡터에 저장했다. 아래 블록부터 저장하면 블록을 삭제하는 과정이 편리하기 때문이다. 또, 블록의 삭제는 화살표의 역방향으로 진행하는게 편리하다. 보드를 탐색해나가며 같은 종류의 2x2 블록들을 찾아서 boolean 2차원 배열에 삭제할 블록들을 표시해두고, 나중에 일괄적으로 삭제하는 방법을 이용하면 삭제할 수 있는 블록이 겹치더라도 연산이 간단해진다. 삭제할 수 있는 블록이 겹칠 수 있으므로 같은 종류의 2x2를 발견하자마자 지우는 것은 절대 안된다. 주기마다 삭제한 블록의 개수를 누적시켜주면 문제는 해결된다. 소스코드 #include #include #include using namespace std; vector vboar.. 2022. 6. 5.
[SQL] 헤비 유저가 소유한 장소 - 2021 Dev-Matching 테이블 문제 설명 해설 : HOST_ID별 튜플의 수를 구하고, 튜플의 수가 2 이상인 HOST_ID들을 추출한 서브쿼리를 이용한다. 메인 쿼리의 HOST_ID가 서브 쿼리의 HOST_ID 리스트에 속한다면 이 튜플을 모두 출력하면 된다. SELECT * FROM PLACES WHERE HOST_ID IN( SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(*)>1 ) ORDER BY ID; 문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/77487 2022. 6. 5.