목록전체 글 (145)
Partially Committed
https://www.acmicpc.net/problem/1043 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net 문제 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 과장해서 말한다. 당연히 과장해서 이야기하는 것이 훨씬 더 재미있기 때문에, 되도록이면 과장해서 이야기하려고 한다. 하지만, 지민이는 거짓말쟁이로 알려지기는 싫어한다. 문제는 몇몇 사람들은 그 이야기의 진실을 안다는 ..
싱글톤 컨테이너 # 웹 애플리케이션과 싱글톤 - 스프링은 기업용 온라인 서비스 기술을 지원하기 위해 탄생함. - 대부분의 스프링 애플리케이션은 웹 애플리케이션이며, 웹 애플리케이션은 보통 여러 고객들이 동시에 요청을 함. @Configuration public class AppConfig { @Bean public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } @Bean public OrderService orderService(){ return..
스프링 컨테이너와 스프링 빈 2022. 1. 10. # 스프링 컨테이너 생성 - ApplicationContext 를 스프링 컨테이너라고 한다. - ApplicationContext 는 Interface 이다. - 스프링 컨테이너는 XML 을 기반으로 만들 수 있고 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. new AnnotationConfigApplicationContext(AppConfig.class); - 위 클래스는 ApplicationContext 인터페이스의 구현체이다. - 스프링 컨테이너를 부를 때 BeanFactory, ApplicationContext 로 구분해서 부르지만 BeanFactory 를 직접 사용하는 경우가 없고 일반적으로 ApplicationContext 를 스프링..
Spring 과 OOP A. 스프링 프레임워크와 스프링 부트란? 스프링 프레임워크는 아래와 같이 정리할 수 있다. - 핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타 - 웹 기술 : 스프링 MVC, 스프링 WebFlux - 데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원 - 기술 통합 : 캐시, 이메일, 원격접근, 스케줄링 - 테스트 : 스프링 기반 테스트 지원 - 언어 : 코틀린, 그루비 - 최근에는 스프링 부트를 통해서 스프링 프레임워크를 편리하게 사용할 수 있다. (복잡한 초기 설정 X ) 스프링 부트는 아래와 같이 정리할 수 있다. - 스프링을 편리하게 사용할 수 있도록 지원해준다. - Tomcat 과 같은 web server 가 내장되어 있어서 별도로 설치하지 ..
끝난지는 사실 한참 지났지만, 지금에서야 어느정도 여유가 생겨서 간단한 후기를 작성한다! ( LG Aimers 로 여름방학을 순삭시키고 나니 3-2 학기가 되었고, 3-2학기 전공이 대학 생활 중에 가장 고비였다.. 4학년 전공도 하나 들어서 그런지 진짜 죽는줄 알았다... ) 2022. 여름방학에 참여한 LG Aimers 프로그램은 2 개의 페이즈로 구분되어있다. 첫 번째 페이즈는 AI 에 대해 가볍게 훑어볼 수 있는 개론수준의 강의를 공부하는 기간이고 두 번째 페이즈는 Dacon 플랫폼에서 자율주행 센서 공정 데이터로부터 안테나 성능을 예측하는 모델을 만들어 경쟁하는 해커톤이 진행된다. 이 프로그램에서는 실습 수업은 전혀 하지 않기 때문에, 해커톤을 진행하기 위한 지식은 스스로 얻어내야 한다... 인..
3학년 2학기 기말고사를 준비하던 중, 삼성 SDS 알고리즘 특강 포스터를 발견하고 지원하였다. 구글 폼으로 지원 서류를 제출하면 12월 12일(월요일)부터 대략 일주일 간 코딩테스트를 봐야하는데, 기말고사 기간이랑 완벽하게 일치해서 온전히 시간을 쏟진 못했다. 월요일~화요일에 전공 4과목 교양 1과목, 금요일에 전공 1과목 시험을 치뤄야 했기 때문에 수요일, 토요일에 코딩테스트 문제를 조금씩 풀어나갔다. (일요일은 약속이 있었기 때문에.. ㅜㅜ) 사전 테스트 문제는 총 5문제(level2 4개, level3 1개)으로 구성되어 있었는데 체감 난이도는 잘은 모르겠지만 백준 기준 골드5 이상인 것 같았다. 1번 문제는 생각보다 쉽고 제한도 널널해서 금방 구현했고, 2번 문제는 그리디로 풀릴 줄 알았으나 그..
오늘 다뤄볼 상황은 문자열이 주어졌을 때, Palindrome 인지 아닌지 Check 하는 것이다. Palindrome 이란 String 을 거꾸로 뒤집었을 때 원본이랑 동일한 것을 의미한다. 예를 들어 abcdcba 는 reverse 해도 abcdcba 이므로 Palindrome 이다. 어떻게 알고리즘을 구성할 수 있을까? 가장 먼저 떠올릴 수 있는 풀이는 실제로 문자열을 뒤집은 다음 원래 문자열과 비교해서 같은지 아닌지를 판단하는 것이다. 아래와 같이 코드를 작성할 수 있다. using namespace std; // time : O(N) // space : O(N) bool isPalindrome(string str) { // Write your code here. string reverse = "..
오늘 다룰 주제는 Non-Constructible Value(Change) 이다. positive integer 로 구성된 array 가 주어졌을 때, 각각의 원소들의 합으로 나타낼 수 없는 최소의 값을 Non-Constructible Value 라고 정의한다. 예를 들어, coins 배열이 [1, 2, 5] 로 주어졌을 때 각각의 원소들로 만들어낼 수 있는 값은 1, 2, 3, 5 이므로 Non-Constructible Value 는 4 이다. 가장 먼저 떠올릴 수 있는 방법은 주어진대로 꾸덕꾸덕 구현하는 것이다. 주어진 배열을 ascending order 으로 sorting 한 다음에 모든 원소들의 합을 구한다. 그러면 Non-Constructive Value 는 1~max_sum+1 중 하나일 것이..