일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- 익명 객체 @transactional
- 안정해시
- 백준 특정한 최단 경로
- kotiln const val
- ipfs bean
- java 파티
- java 1238
- mongodb lookup
- java 팩토리얼 개수
- 전략 패턴이란
- 자바 1676
- spring mongodb
- go
- kotiln const
- 백준 2252 줄세우기
- java 1509
- kotiln functional interface
- spring mongodb switch
- java 백준 1509
- rabbitmq 싱글톤
- javav 1676
- Java Call By Refernce
- ipfs singletone
- Spring ipfs
- 자바 백준 팩토리얼 개수
- nodejs rabbitmq
- spring mongoTemplate switch
- spring mongoTemplate
- 백준 연결요소 자바
- 백준 1504 java
- Today
- Total
목록코테 (79)
공부 흔적남기기
템플릿 메소드 패턴, 전략패턴, 템플릿 콜백 패턴 위 3가지의 디자인 패턴은 어떤 공통점을 가지고 있을까? 위 디자인 패턴들은 같은 목적을 가진 패턴들이다. 복잡한 코드속에서 반복되는 부분을 외부로 템플릿화(공통화?) 시켜 결합성을 낮추고 (단일 책임 원칙) 변하는 부분(알고리즘 군)을 구현해 템플릿을 통해 실행시키는 방식이다. 예를 들어 코드의 모든 곳에 다음과 같이 로그를 남기는 코드가 있다고 가정해보자 @Service class ItemServiceDirtyCode( private val itemRepository: ItemRepositoryDirtyCode, private val logService: LogServiceDirtyCode ) { fun getItems(): List { var tra..

문제는 간단하다 내가 소유하고 있는 카드들과 존재여부를 확인하고 싶은 카드들을 입력받는다. 범위를 보면 -10000000~10000000 로 int로도 처리 된다. 나는 처음에 생각한게 먼저 단순히 target을 python의 in연산자로 찾으면 O(N)의 시간 복잡도로 찾아지게 되므로 시간초과가 뜰 것같았다. 그래서 리스트에서 값을 찾을 때 O(logN)의 속도로 찾을 수 있는 이분탐색을 사용해서 찾을려고 했다. 근데 멍청하게 O(logN)에서 찾은 애들은 remove를 시켜주겠다는 생각을 했다. list에서 remove를 해주는 것이 더빠르다고 생각해서 remove를 해주었다. 하지만 일반 적인 생각말고 시간복잡되 관점에서 remove는 찾는 것과 마찬가지로 O(N) 시간복잡도를 가진다. 그래서 O(..
Point 1. 코드를 작성할때에는 항상 주위의 코드와 더불어 코드를 작성하기 마련이다. 이때 주위의 코드를 읽는 시간이 길어질 수록 개발기간이 늘어나고, 안 좋은 코드를 작성할 가능성이 높아진다. 2. 코드를 읽는데 굉장히 시간이 많이 걸리고 1을 바꾸기위해 10을 바꿔야하기 때문에 유지, 보수, 새 기능 추가에 비용이 너무 높아진다. 3. 좋은 코드의 책임은 모두 프로그래머에게 있다. 촉박한 시간, 업무량 등을 핑계로 나쁜코드를 작성하게 되는데 이는 오히려 시간을 늦추게 된다. 주의깊게 좋은 코드를 작성하는 것이 시간을 줄이는 좋은 방법이다. 4.우아한( 보기 즐거운 ) 코드를 작성하자. 5.깨끗한 코드는 잘 쓴 문장 처럼 읽혀야 한다. 6.다른사람이 보기도 쉽고 고치기도 쉬운 코드를 작성하자. 7...
조건 : n보다 크고 2n보다 작거나 같은 소수는 적어도 하나 존재한다. 소수 문제는 무조건 : 에라토스테네스의 체를 사용하자! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while(true) { int n = Integer.parseInt(br.readLine()); if(n==0){ break; } Syste..
조건:설탕을 정확하게 N킬로그램 3킬로그램 봉지와 5킬로그램 봉지 최대한 적은 봉지를 들고가려고 한다. N킬로그램 배달해야 할 때 봉지 몇개를 가져가면 되는지 그 수를 구하는 프로그램 정한 양의 봉지로 만들 수 없다면 -1 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(b..
조건 : 높이가 V인 나무막대 낮에 A만큼 올라가고 자는 동안 B만큼 미끄러진다. 속도 제한이 있어 반복문사용하면 시간 초과 import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st = new StringTokenizer(br.re..
조건 -> 세정수 H는 호텔의 층수 W는 각 층븨 방수 N은 몇번째 손님인지 엘레베이터의 거리는 상관 하지 않는다. 만약 거리가 같다면 아래층 방을 선호한다. import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n = Integer.parseInt(br..
import java.io.*; import java.util.ArrayList; import java.util.List; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //String 하나를 입력받고 String s = br.readLine(); //소대문자 구분없이 세고 출력이 대문자기 때문에 대문자로 바꿔줌 s = s.toUpperCase(); char[] chars = s.toCharArray(); int[] count = new int[s.length()]; List list = n..
import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //String 하나를 입력받고 //크로아티아 알파벳에 맞게 replace를 해준다 String[] arr = new String[]{"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="}; String s = br.readLine(); for(int i =0; i

import java.io.*; class Main { public static void main(String[] args) throws IOException { int[] selfNumberList = new int[10001]; //1부터 10000까지 확인해줘야 하기 때문에 10001길이의 배열 생성 int i =1; while(true){ //10001이라면 break if(i == 10001){ break; } //i1의 셀프넘버 확인해주고 10000보다 작다면 1로변경 int i1 = selfNumber(i); if(i1