일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 라이브템플릿
- 2981
- javascript
- 알고리즘
- 최단경로
- Dijkstra
- java
- 파이썬
- codility
- HTTP
- error
- 백준
- 프로그래머스
- BFS
- 2018 KAKAO BLIND RECRUITMENT
- algorithm
- API
- applicationeventpublisher
- beandefinitionstoreexception
- 문자열
- 탐욕법
- 소수
- spring security
- Greedy
- counting elements
- brute force
- Python
- springboot
- Spring
- 코딩테스트
- Today
- Total
목록전체 글 (78)
Altiora Petamus
평소 자주 사용하는 코드 스타일이 있다면 인텔리제이에서 제공하는 Live Template를 사용해서 생산성을 향상시킬 수 있습니다. 저는 테스트 코드를 템플릿으로 만들어두고 작성 중인데 아주 편리하게 사용 중입니다 ㅎㅎ 우측 상단 + 버튼을 눌러서 test 라는 단축어를 만들어주고 Template text 안에 템플릿 코드를 작성해줍니다. 이 때 아래쪽 Change 에서 declaration 을 체크해주셔야 합니다. 다 작성하셨다면 EDIT VARIABLES 를 눌러서 작성한 변수가 동작하게끔 설정해주겠습니다. NUM 에는 현재 작성하는 테스트 코드의 개수를 할당하고 싶었지만, 마땅한 Expression 이 없는 것 같아서 Count 라는 문자열을 Default 로 설정해놓고 직접 번호를 매겨주고 있습니..
AOP? 관점 지향 프로그래밍 (Aspect Oriented Programing)의 약자로, 메인 비즈니스 로직에서 공통된 기능을 분리하여 별도로 관리할 수 있게 한다. 사용해보기 요구사항 REST API 개발 시 컨트롤러나 특정 메소드가 동작하는 시간을 측정하여 로그로 남겨야한다. 과정 간단한 api를 만들어주고 @RestController @RequestMapping("/api") public class RestApiController { @GetMapping("/get/{id}") public String get(@PathVariable Long id, @RequestParam String name) { return id + " " + name; } @PostMapping("/post") publi..
ApplicationEventPublisher Spring의 ApplicationContext가 상속하는 인터페이스 중 하나 Design Pattern 중 하나인 옵저버 패턴의 구현체 이벤트를 발생하는 Publisher와 이를 감시하는 Observer(or Subscriber) 사이의 결합도를 낮추면서 이벤트를 Observer에게 전달하고 싶을 때 사용하게 된다. 사용 파일 업로드를 시도한다고 가정할 때, 성공과 에러를 구분해서 이벤트를 감지하고 결과를 간단한 RESTful API를 사용하여 내려주도록 해보자. Event import lombok.Builder; import lombok.Getter; import java.util.Map; import java.util.UUID; @Getter @Buil..
11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 🤔생각해보기 파이썬의 정렬은 람다를 사용할 수 있다. 다중 조건일 경우 튜플로 넣어주면 되므로 아주 간단하게 해결할 수 있다. 성공 코드 N = int(input()) position = sorted([tuple(map(int, input().split())) for _ in range(N)], key=lambda x: (x[0], x[1])) for pos in position: print(*pos) 갑자기 ..
이 글을 Notion API를 사용해보며 방법을 익히기 위해 작성합니다. 잘못된 정보가 있을 수 있고 베타인만큼 추후 내용이 수정될 수 있습니다. 드디어 Notion API의 공개 베타가 시작되었습니다. 티스토리에 편하게 노션을 연동하기 위해서는 API가 필수였는데 활용할만한게 있을지 기대하는 중입니다. 우선 간단하게 노션에 새로운 컨텐츠를 만드는 법을 작성해보겠습니다. (Postman을 사용하여 테스트하였습니다.) Header API를 사용하기 위해선 우선 Secret key 를 발급받아야 합니다. 키 발급 방법은 아래 링크를 참조하세요. Getting started Learn how to make your first API requests using the Notion API developers.no..
문제 평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다. 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다. 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다. 입력 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 ..
결합도와 응집도 좋은 소프트웨어 설계를 위해서는 결합도(coupling)는 낮추고 응집도(cohesion)는 높여야 한다. 결합도란? 모듈(클래스)간의 상호 의존 정도를 나타내는 지표 결합도가 낮으면 모듈간의 상호의존성이 줄어들어서 객체의 재사용 및 유지보수가 용이하다. 응집도란? 하나의 모듈 내부에 존재하는 구성 요소들의 기능적 관련성 응집도가 높은 모듈은 하나의 책임에 집중하고 독립성이 높아져서 재사용 및 유지보수가 용이하다. 1. SRP (Single Responsibility Principle) - 단일 책임 원칙 어떠한 클래스를 변경해야하는 이유는 한가지뿐이여야 한다. 2. OCP (Open Closed Principle) - 개방 폐쇄 원칙 자신의 확장에는 열려있고, 주변의 변화에 대해서는 닫..
Reference https://programmers.co.kr/learn/courses/30/lessons/17678?language=python3 아래 풀이 방법은 제가 푼 방식으로 정해와는 차이가 있을 수 있습니다. 문제 풀이 언뜻 보기엔 쉬워보였지만 문제의 의미나 입출력의 상관관계를 이해하기가 힘들어서 생각보다 오래 걸렸던 것 같다. 해결하기 위한 순서는 다음과 같다. 시간을 비교해주기 위해서 문자열로 된 시간 단위를 분으로 변환한다. 정규식 활용 waiting 이라는 배열을 선언해주고 이 안에 분으로 변환된 시간을 오름차순으로 정렬하여 담아둔다. 셔틀의 운행횟수만큼 반복하면서 대기열에서 차례대로 셔틀에 탑승시킨다. 마지막 셔틀에 자리가 남는다면 콘은 마지막 셔틀의 도착시간에 대기열에 들어가면 된..