일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- StringBuilder
- 백준 1197번 최소 스패닝 트리 - java
- StringTokenizer
- hash
- append
- 코틀린기초
- 백준 1541
- mysql hy000 에러
- HashMap
- 백준 1647번 도시 분할 계획 - java
- 최소 힙 1927
- 백준 3190번
- 백준 2467번 용액 자바 - 이분탐색
- 18111번 마인크래프트 - java 구현
- 백준 1806번 부분합 java
- toUpperCase
- ac 5430번
- 프로그래머스
- replace()
- HashSet
- kotlin
- dp
- map
- Java
- Stack
- 백준 1043번 거짓말 - java 분리 집합
- 백준 2473번 세 용액 - java
- 프로그래머스 자바
- 프로그래머스 java
- 백준 14938번 서강그라운드
- Today
- Total
목록분류 전체보기 (177)
말하는 컴공감자의 텃밭
로깅 라이브러리를 사용해 로그를 출력해보자. 스프링 부트에서는 기본적으로 아래 라이브러리를 사용한다. SLF4J - http://www.slf4j.org Logback - http://logback.qos.ch 오늘은 SLF4J 를 사용해봅시도 @RestController로 View를 반환하지 않고 바로 메세지 바디에 String을 넣어주게 사용한다. HTML 삽입 미리보기할 수 없는 소스 application.properties 에 아래 코드를 추가하면 콘솔창 색이 구분되어진다. spring.output.ansi.enabled=always 로그 범위 ? -> 로그가 출력되는 포멧 확인 시간, 로그 레벨, 프로세스 ID, 쓰레드 명, 클래스명, 로그 메시지 Level 단계 TRACE > DEBUG > I..
legacy ? legacy : 유산 IT쪽에서는 낡은 기술이나 방식, 컴퓨터 시스템 SW 등을 말할때 사용되곤 한다. ex) 레거시 프로젝트 : 오래된 기술이나 아키텍처를 사용하여 개발되었거나, 현재의 개발 표준이나 기술적 요구사항을 충족시키지 못하는 소프트웨어 프로젝트를 의미 결국 SW 개발에서 불가피하게 만들어진 오래되고, 수정하기 어려운 친구들이 되겠다.
입력들이 주루루 주어지고 1이 루트로 기준이 된다. 입력예제 처럼 주어지게 되면. 그림과 같이 입력이 들어온다. 1이 root 가 된다면 이처럼 표기할 수 있겠다. 따라서 각 자리의 부모를 나타내면 2 : 4 3 : 6 4 : 1 5 : 3 6 : 1 7 : 4 이다. Level 별로 나타내는게 문제의 핵심이기때문에 Map에 레벨과 리스트를 넣어 tree를 구성해주었다. static Map tree = new HashMap(); 이후 선언된 tree에 입력을 처리할때 computeIfAbsent를 활용해서 기존 값이 있다면 추가, 없었다면 새로 리스트를 넣어주었다. tree.computeIfAbsent(a, k -> new ArrayList()).add(b); dfs 재귀를 통해서 모든 트리를 찾아 주었..
이진트리 입력이 주어지고, 해당 트리를 전위 중위 후위한 결과를 출력하는 문제이다. 입력에 . 은 자식이 없다는 의미로 받아주면 된다. 트리를 순회할때는 큰 삼각형을 작은 삼각형으로 쪼개서 순회한다고 생각했다. 따라서 재귀함수로 작성하는게 문제의 포인트이다. Node 클래스로 왼쪽과 오른쪽 자식을 관리해 주었고, '.' 입력이 주어질때는 자식에 Null을 주는 방식으로 처리를 했다. 전위 순회의 경우 루트 먼저, 이후 왼 > 오 자식을 순회하고. 중위의 경우 왼쪽 아래까지 쭉 내려갔다가 더이상 자식이 없으면 루트, 오른쪽 자식을 찾는 방식이다. 마지막으로 후위는 왼쪽 아래 탐색 후 오른쪽 아래 탐색. 이후 없다면 부모 노트 체크. 이다. 결론적으로 전위는 출력하고 왼쪽 오른쪽 재귀함수를 호출. 중위는 왼..
구간중에 가장 사람이 많이 겹치는곳을 찾고, 그 구간이 여러 장소에서 겹친다면 알파뱃 순으로 정렬. 정해진 장소에서 여러 시간대가 사람이 많다면 가장 빠른 시간대로 출력한다. >> 이 규칙들을 제대로 안읽고 모든 구간에서 가장 긴 구간 찾고,,, 세그먼트 나누고 2시간은 걸린거 같다. 막상 다 작성하니까 가장 빠른이라 훨씬 쉽게 해결됐다... 해시 + 정렬 쓖쓖.. 해시맵에 배열을 넣어서 구간 범위를 증가시켜 주었고, MAX 값을 가진 장소를 리스트에 넣어서 구간을 체크해주었다. HTML 삽입 미리보기할 수 없는 소스
문제가 간단하다. 문제를 잘 읽으면 N 을 반 쪼개서 1차이로 나누는 로직이 존재합니다이 홀수면 N-1/2 랑 N-1/2 로 나누고, 짝수면 반반 가져가게 되는데 이런 과정을 모두 Set에 담아줍니다. 그리고~ 여기에 M이 포함되면 Yes 해주면 꿑 꿑 꿑 만약 130이 N 이라면 요로코롬.. 주루루 저장이 된다. 규칙이 존재하는데 홀수가 나타나는 순간 두 갈래로 갈라진다. 짝수라면 반반 이고 중복 저장 안하니까 1개씩 저장된다. 코드로 보잡 HTML 삽입 미리보기할 수 없는 소스
먼저 쿼리 개수가 주어진다. 이후로 1 또는 2의 쿼리 값이 주어지고, 고릴라의 이름. 정보의 개수 정보의 가치 가 주어진다. 문제를 한 20분 읽은거 같다. Cpp 5 10 4 2 8 2 라길래 5도 정보에 포함인줄 .... 이렇게 되겠다. 여기서 가장 큰 값만 가져오기 때문에 정렬이 필요한데 우선순위 큐를 활용했다. 우선순위 큐(Priority Queue)는 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나오는 것. 힙(Heap)으로 정렬하기에 시간 복잡도는 추출 삽입 모두 O(logn) 이다. 그리고 Map 을 편하게 쓰기위해 처음보는 메서드를 써봤는데 간단하게 key에 valuye가 존재하면 가져와서 사용하고, 없으면 새로 만들어주는 메서드다. computeIfAbsent(K key, Fu..
공유기를 설치하는 개수는 정해져 있고, 집 사이의 거리를 최대로 하고 싶은 도현이다. 처음에는 뭘.. 탐색해야 하나 어지러웠다 처음과 끝쪽에 배치하는게 가장 멀지 않나..? 이런 생각만 갖고 있다가. 기준을 1번으로 잡고, 이후부터 거리를 늘려나가며 주어진 개수를 채운다면 거리를 더 벌리자! 못 채웠다면 이전 거리가 최대 거리일 것이다. HTML 삽입 미리보기할 수 없는 소스 이분탐색... 이분탐색....이분탐색...........
룰은 뭐 동일하다, 뱀을 타면 해당 숫자로 내려가고, 사다리면 해당 위치로 올라간다. 위치에 사다리나 뱀으로 이동하는 위치 값을 넣어두고, 해당하는 위치로 간다면 이동해주자. BFS를 통해 탐색하고, 큐에 배열을 넣어 주사위 횟수를 저장해주었다. 이후 최소값을 출력해주면 끝. HTML 삽입 미리보기할 수 없는 소스 한방에 풀려서 기분이 좋았던.. 홍홍홍