일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- java
- 우아한테크코스
- 코틀린기초
- 코틀린
- KotlinInAction
- servlet프로젝트
- 트랜잭션
- ObjectCalisthenics
- 데이터베이스락
- 코틀린뽀개기
- 트랜잭션성질
- subprocess에러
- 객체지향생활체조
- tomcat설정
- mysqld.sock
- 알고리즘
- S2139
- jsp프로젝트
- 스프링트랜잭션
- 백준
- 레벨로그
- 리버스프록시
- DynamicWebProject
- GithubOAuth
- 무중단배포
- kotlin
- 자바비동기
- 테코톡
- Google Place Photo API
- 트랜잭션속성
- Today
- Total
목록알고리즘 (4)
초이로그
2020.12.09 드디어 상위 100문제 골드로 다 채웠다!!!!! (마지막으로 푼문제는 열쇠) 이전에 풀었던 골드1 문제가 플레로 업그레이드 되어서 올골드가 안된건 아쉽지만.. 상반기때 코테좀 뚫어봤다고 여름에 쉬운문제로만 설렁설렁 풀다가 solved.ac에도 잔디가 생겼길래 심는 재미를 붙여서 달성할수 있었다. 푼 문제중에 가장 인상깊었던 상어 시리즈... 뭔 오기였던지 매일매일 연속으로 하나씩 풀고 싶었다 전날보다 문제 난이도가 낮아지면 기분 좋았고 어려워졌을땐 다른 문제로 도망가고 싶었지만 RPG 키우듯이 이악물고 풀었다ㅠㅠ 구현 + 배열 돌리기 연습을 집중적으로 할 수 있었지만 여전히 힘들다 (나 혼자) 충격적이었던 사건은 자바 자료구조에서 이진트리가 지원된다는 것을 최근에 알았다는 것이다. ..
https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름 www.acmicpc.net 게리맨더링1은 그래프 개념을 통해 쉽게 구현할 수 있었는데 2번은 배열 빡구현이라 인덱스 설정하면서 두통을 얻을 수 있었다! 다 풀고 난 뒤 보니까 규칙을 사용하신 분들도 있었는데 난 복잡할 수록 조건에 맞게 단위를 나눠서 푸는게 편해서 빡구현 했다^^. 기준점 (x, y)와 경계의 길이 d1, d2를 정한다. ▶︎ 범위에 해당하는 경우만 다음 단계를 진행한다. 다음 칸은 경계선이다. ▶︎ markFi..
이전의 숨바꼭질 시리즈와는 다르게 시간에 따라 동생의 위치가 바뀐다. == 이전에 방문했던 좌표를 재방문할 수 있다. (최소시간을 위해) == BFS로만 돌리면 메모리 초과를 맛볼 수 있다. 역시 골드1의 문제... 약간의 아이디어가 필요했다. 헤이 구글 1. 재방문의 경우, 최소 2초가 걸린다. 2. 수빈이가 각 좌표에 도달하는 최초 시간을 구한다. 즉, 각 좌표에 도달하는 최소 시간을 구한다면, 해당 좌표는 언제나 2n초 안에 돌아올 수 있다. 2n초 안에 재방문 가능하다는 것은, 최초 시간이 홀수라면 언제나 홀수 시간에, 최초 시간이 짝수라면 언제나 짝수 시간에 방문 가능하다는 것이다. 따라서 짝수로 최초 도달하는 시간, 홀수로 최초 도달하는 시간을 구분해야한다. int[][] vis = new i..
이정도 난이도의 구현문제가 그렇듯 "오? bfs/dfs 써서 구현만 딱하면 될거 같은데?" 하고 덤비면 점점 꼬이는 문제.. 7달전의 나처럼.. 게임이 진행되는 것과 같이 차근차근 케이스를 나누고 적절한 알고리즘을 대입하면 쉽게 해결할 수 있다. 1. 궁수를 배치한다. -> M개의 자리중 3개를 선택하는 문제이므로 재귀를 사용하여 조합을 구현 private static void combination(int cnt, int st) { if (cnt == 3) { // 궁수 3명 자리 고르기 완료! 조합 완성! } else { for (int i = st; i < M; i++) { archers[cnt] = i; combination(cnt + 1, i + 1); } } } 2. 완성된 조합에서, 몇명의 적..