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

분류 전체보기580

[시뮬레이션] 압축 - 2018 KAKAO BLIND RECRUITMENT 해결방법 i) map을 이용하여 길이가 1인 모든 단어를 포함하는 사전을 초기화한다. map은 쌍으로 만들면 된다. ii) map에서 현재 입력과 일치하는 가장 긴 문자열을 찾는다. iii) 가장 긴 문자열에 해당하는 사전의 색인 번호를 출력한다. iv) 가장 긴 문자열의 뒤에 문자가 남아있을 경우, 가장 긴 문자열에서 그 문자를 덧붙이고 map에 넣는다. v) 현재 위치를 그 문자의 위치로 이동한다. 소스코드 #include #include #include using namespace std; map dic; vector solution(string msg) { vector answer; for(int i=0;i 2022. 6. 28.
두 vector의 집합 구하기 (C++) A+B-A∩B=A∪B 공식을 이용하여 두 vector의 교집합과 합집합을 구할 수 있고, 추가로 부분집합의 여부까지 구할 수 있다. Set 라이브러리는 많은 프로그래밍 언어에서 지원하고 있으므로 C++가 아니더라도 이 방법을 충분히 이용할 수 있다. C++의 set에는 중복을 허용하지 않는 set, 중복을 허용하는 multiset을 지원하며, 이들을 이용하여 두 벡터의 합집합과 교집합을 구해볼 것이다. 1. 합집합 구하기 - A∪B=A+B-A∩B - set은 중복 요소가 자동으로 제거되기 때문에 벡터 a, b의 원소를 모두 set에 넣으면 set에 있는 요소들이 합집합이 된다. 2. 교집합 구하기 - A∩B=A+B-A∪B - 중복을 허용하는 multiset에 벡터 a, b의 원소를 모두 저장해두고, 합집.. 2022. 6. 24.
[완전탐색] 후보키 - 2019 KAKAO BLIND RECRUITMENT 해결 방법 i) 테이블의 모든 속성에 대한 조합(Combination)을 구한다. - 예를 들어, 테이블의 속성 번호를 0, 1, 2, 3으로 매겼을 때, 모든 속성에 대한 조합은 {0, 1, 2, 3, {0, 1}, {0, 2}, {0, 3}, {1, 2}, {1, 3}, {2, 3}, {0, 1, 2}, {0, 1, 3}, {0, 2, 3}, {1, 2, 3}, {1, 2, 3, 4}}가 된다. - 조합을 C++ 코드로 구현하는 방법은 https://kimcoder.tistory.com/118?category=888042 에 설명했으니 이를 참고하면 된다. ii) 모든 속성 조합에 대하여 유일성을 검증한다. - 각각의 속성 조합들에 대한 중복 여부를 검증한다. - 예를 들어, 필자는 ["이름", "전.. 2022. 6. 24.
[Spring] Bean의 id와 name 1. Bean의 식별자 - Bean의 식별자로는 id와 name이 있다. - Bean은 2개 이상의 식별자도 가질 수 있다. Bean에게 2개 이상의 식별자를 주는 이유는 해당 bean을 사용하는 곳에 따라 다양한 이름으로 참조할 수 있도록 함으로써 이름을 짓는 관례를 모두 맞춰줄 수 있게 하기 위함이다. - Bean의 식별자는 애플리케이션 컨텍스트 내에서 고유해야 한다. 2. id와 name의 차이점 1) id - id에는 다음과 같은 작성 규칙이 존재한다. 공백이 들어갈 수 없다. 첫 글자는 알파벳, 밑줄(_), 허용된 일부 문자만 사용할 수 있다. 나머지 글자는 알파벳, 밑줄, 숫자, 점(.)을 허용하며, 그 외의 특수문자는 사용할 수 없다. - id를 생략한다면 컨테이너는 자동으로 id를 부여해준.. 2022. 6. 23.
[Spring] Scope Proxy 1. Scope proxy의 필요성 - Bean에 독립적인 상태를 저장해두고 싶을 때 사용할 수 있다. DI는 유일한 오브젝트를 반환하기 때문에 bean에 독립적인 상태를 저장해두기에는 부적합하다. - 직접 scope bean을 DI 받는 대신에 scope bean에 대한 proxy를 DI 받는 방식이다. proxy에서는 bean에 설정된 scope에 맞게 bean 오브젝트를 알아서 넘겨준다. - 예를 들어, singleton scope bean에서 session scope bean을 DI 받아야 하는 경우를 생각해보자. singleton scope bean에서는 session scope bean을 DI 받더라도 하나의 오브젝트밖에 할당되지 않기 때문에 사용자마자 다른 정보를 가지고 있을 수 없다. 이 .. 2022. 6. 23.
[Spring] Prototype Bean 스프링이 관리하는 bean은 기본적으로 singleton으로 관리된다. 그리고 singleton은 bean의 scope들 중 하나이기 때문에 설정을 통해 scope를 변경할 수도 있다. ※ scope : Spring이 관리하는 bean의 관리 범위를 의미하며, 하나의 scope 안에서는 매번 같은 오브젝트를 가져온다. Bean의 scope로는 singleton, prototype, request, session, globalSession, application이 있는데, 이번 포스팅에서는 scope가 prototype인 bean의 특징과 여러가지 사용 방법에 대해 알아보자. 먼저, bean의 scope는 다음과 같이 설정할 수 있다. xml 방식 ... Annotation 방식 @Component @Sc.. 2022. 6. 23.
[Spring] RestTemplate 한글 깨짐 해결방법 RestTemplate에서 UriComponentsBuilder를 이용할 때 한글이 깨져서 전송되는 경우가 있다. 그 이유는 RestTemplate에서는 String 타입에 대해서 내부적으로 StringHttpMessageConverter를 사용하여 데이터를 변환하는데, StringHttpMessageConverter의 기본 문자셋이 ISO-8859-1이기 때문에 UTF-8로 변환을 해주어야 한다. "UTF-8"을 직접 명시해줄 수도 있지만, encode() 메소드를 활용하여 UTF-8로 변환해줄 수도 있다. encode()는 인자가 없을 경우에는 기본 문자셋을 "UTF-8"로 지정한다. RestTemplate restTemplate = new RestTemplate(); HttpHeaders heade.. 2022. 6. 22.
[Spring] SpEL 1. SpEL이란? - SpEL은 Spring Expression Language의 약자로, EL보다 유연하고 일반 프로그래밍 언어 수준에 가까운 강력한 표현식을 이용하는 표현 언어다. - SpEL은 Spring 3.0에서 처음 소개되었다. 2. 기본 사용법 - JSP 뷰에서 SpEL을 사용하려면 JSP에 다음과 같이 태그 라이브러리를 추가해야 한다. - 를 통해 모델 이름이 포함된 표현식을 작성할 수 있다. 예를 들어, user 오브젝트의 name 필드 값을 출력하려면 다음과 같이 작성하면 된다. - 다음과 같이 오브젝트 메소드의 호출도 가능하다. ※ 스태틱 메소드도 호출이 가능하다. 이 때는 스태틱 메소드 앞에 new 키워드를 붙여야 한다. - 은 다양한 변환 기능과 포맷이 적용된 모델 정보를 화면에.. 2022. 6. 21.
[Spring] Collection 타입을 XML로 작성하기 1. List - 아래 예시와 같이 와 를 이용한다. David Lamb Jooyeok 2. Set - 아래 예시와 같이 과 를 이용한다. David Lamb Jooyeok 3. Map - 아래 예시와 같이 과 를 이용한다. 4. Properties - 아래 예시와 같이 와 를 이용한다. 80 100 90 5. util 스키마 - Collection을 property 값으로 선언하는 대신 독립적인 bean으로 만들 수 있으며, 이 때 util 스키마의 전용 태그를 사용한다. 1) List - 아래 예시와 같이 와 를 이용한다. David Lamb Jooyeok - 아래 예시와 같이 list-class 속성을 이용하여 List 구현 클래스를 지정할 수도 있다. ... 2) Set - 아래 예시와 같이 과 .. 2022. 6. 21.