Home
jimin's blog
Cancel

6550번(부분 문자열)

첫 시도 별다른 알고리즘이 필요 없는 문제 찾아야 하는 단어를 한글자씩 탐색, 문자열이 끝날때까지 다 찾는다면 Yes, 못찾는다면 NO를 반환할 것 while(true)로 하면 런타임 에러(NullPointer)가 발생하므로 입력받은 문자열이 Null 인지 확인해야 함 해결 import java.io.BufferedReader; i...

섹션5. 싱글톤 컨테이너

웹 애플리케이션 대부분의 스프링 애플리케이션은 웹 애플리케이션이다. 물론 웹이 아닌 애플리케이션 개발도 얼마든지 개발할 수 있다. 웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다. 우리가 만들었던 스프링 없는 순수한 DI 컨테이너인 AppConfig는 요청을 할 때 마다 객체를 새로 생성한다. 고객 트래픽이 초당 100이 나오면...

15961번(회전 초밥)

첫 시도 N이 3 * 10^6이므로 완전 탐색은 불가능 투 포인터를 사용해서 구현 시도 잘 생각해 보니 연속으로 먹는 초밥 갯수를 입력받음 먹는 갯수가 정해져 있다면 슬라이딩 윈도우가 최적 슬라이딩 윈도우 구현이 미숙해 1시간 초과 해결 슬라이딩 윈도우 배열인 choice를 생성, 초기화 처음부터 마지막까지 탐색하면...

1613번(역사)

첫 시도 N이 4 * 10^2, K가 5 * 10^4다. 시간복잡도를 계산하지 않고 LinkedList를 이용한 dfs로 문제를 해결 시도 dfs로 구현 시 O(K^2)이므로 해결 x 결국 1시간 초과로 실패 해결 플로이드-와샬 알고리즘으로 해결 가능 -> 시간복잡도가 O(N^3)이라서 생각도 안했는데 이 문제에서는 ...

11497번(통나무 건너뛰기)

첫 시도 N이 10^4이므로 N^2 방식으로는 시도 x 처음에는 DP를 사용하여 해결방법을 탐색 생각해보니 각각 좌우 통나무의 높이 차이를 줄이는게 중요한 문제 -> 높이 순으로 정렬시킨다음 중앙부터 채워나간다면 해결되지 않을까? 각각 좌,우로 이동하는 left, right 변수를 만들고 한번씩 번갈아 가면서 남아있는 큰 숫자를...

17615번(볼 모으기)

첫 시도 N이 5 * 10^5이므로 완전탐색으로는 해결 x 목표는 같은 색깔의 볼끼리 인접하도록 만드는 것, 볼을 이동시킬 때 그 사이에 몇개의 공이 있던 상관 x 고려해야 하는 경우의 수는 왼쪽에 빨간 공만 모을 경우, 파란 공만 모을 경우, 오른쪽에 빨간 공만 모을 경우, 파란 공만 모을 경우, 총 4가지만 고려하면 된다. 다만 ...

섹션2. 스프링 핵심 원리 이해1 - 예제 만들기

프로젝트 생성 프로젝트 설정 : Gradle, Java, Spring Boot 2.7.7 비즈니스 요구사항과 설계 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 주문과 할인 정책 회원은 상품...

프로그래머스(가장 큰 수)

첫 시도 간단한 정렬(내림차순)에 조건이 필요할 것 같음 조건 생성 실패 해결 .compareTo를 사용하여 순서를 정하는데 o2 + o1과 o1 + o2를 비교 -> 예를들어 o1 = 30, o2 = 3이라고 했을 때 303과 330을 비교한다는 것 주의해야 할 점은 만약 배열이 0으로만 가득 차 있다면 답은 0이 나와...

3758번(KCPC)

첫 시도 2차원 배열을 만든다. 행은 팀을, 열은 문제를 뜻한다. 2차원 배열에 점수를 저장한다 -> 이때 저장되어있는 값과 새로 문제를 풀어 얻게 된 값중 큰 값을 저장한다. 모든 로그를 확인한 후 각 문제의 최대 점수를 더해 팀별로 저장한다. Team 클래스 생성 -> id, 점수 총합, 푼 횟수, 마지막으로 풀은 순서...

16463번(13일의 금요일)

첫 시도 매주 금요일이 13일인지 확인해보도록 구현 -> 너무 비효율적 반대로 매달 13일이 금요일인지 확인해보기 1일이 화요일이므로 4일은 금요일이다 & 이번달 13일부터 다음달 13일까지 걸리는 일 수는 현재 일 수 + 이번 달의 총 일 수이다. 윤년마다 2월의 마지막 날을 29일로 처리해주기 시간 복잡도는 O(1...