일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 테코톡
- S2139
- 자바비동기
- jsp프로젝트
- 무중단배포
- java
- 코틀린기초
- GithubOAuth
- 트랜잭션
- ObjectCalisthenics
- 레벨로그
- mysqld.sock
- 객체지향생활체조
- KotlinInAction
- Google Place Photo API
- tomcat설정
- 코틀린
- subprocess에러
- 우아한테크코스
- kotlin
- 데이터베이스락
- 알고리즘
- 리버스프록시
- 스프링트랜잭션
- 백준
- DynamicWebProject
- 트랜잭션속성
- 코틀린뽀개기
- 트랜잭션성질
- servlet프로젝트
- Today
- Total
목록Algorithms (37)
초이로그
아마도 올해 처음으로 푼 DP 문제인것 같다. 그만큼 DP에 감이 살짝 감이 떨어져서 당황했는데 한발자국 물러나서 생각해보니까 매우 기본적인 문제였다. 12사이즈 만큼의 배열에 순차적으로 최솟값을 채워가며 12달에 대해 선형탐색을 한다. 1. ((수영장 이용일 수)*1일이용권 값, 한달 이용권 값) 비교 2. (1번값, 배열[i-2] + 3달이용권값) 비교 3. 최솟값을 배열에 저장 4. 탐색이 끝나면 배열 마지막 인덱스에 해당하는 값과 1년 이용권의 요금을 비교하여 최종 최솟값을 출력한다. github.com/SuyeonChoi/Algorithms/blob/master/SW%20Expert%20Academy/Java/DP/p1952.java SuyeonChoi/Algorithms Personal Alg..
분명 전에 Python으로 풀었는데 이번에도 그냥 LinkedList로 풀었다가 시간초과가 떴다. 연산에서 시간복잡도 O(1)로 처리하는 스택을 사용해야한다. 커서를 기준으로 leftStack, rightStack 두개를 사용하여 해결하였다. github.com/SuyeonChoi/Algorithms/blob/master/BaekJoon/Java/Stack/p1406.java SuyeonChoi/Algorithms Personal Algorithm Study::solving BOJ, Programmers, and SW Expert Academy - SuyeonChoi/Algorithms github.com
기본적인 bfs문제 유형이였다. 시작점을 큐에 넣고, bfs로 탐색하면서 만약 큐에서 poll하였을때 목적지 좌표라면 1을 리턴하는 방식으로 해결하였다. github.com/SuyeonChoi/Algorithms/blob/master/SW%20Expert%20Academy/Java/p1227.java SuyeonChoi/Algorithms Personal Algorithm Study::solving BOJ, Programmers, and SW Expert Academy - SuyeonChoi/Algorithms github.com [S/W 문제해결 기본]시리즈는 매우 쉬운듯하다. 알고리즘 처음 공부할때 좋을듯!
첨에는 바로 bfs로 슥슥 풀었는데 다른 사람들의 실행시간을 보니까 너무 짧은거 같아서 규칙을 찾아서 풀어냈다. x, y축 각각의 거리중 가장 짧은 거리를 2배로 하여 더해주고, 각각의 거리가 서로 다른 경우에 한하여 남은 거리의 짝/홀수 여부에 따라 추가 처리를 해주었다. github.com/SuyeonChoi/Algorithms/blob/master/SW%20Expert%20Academy/Java/%EC%88%98%ED%95%99/p8382.java SuyeonChoi/Algorithms Personal Algorithm Study::solving BOJ, Programmers, and SW Expert Academy - SuyeonChoi/Algorithms github.com 수학적인 접근도 필요..
이런 문제를 보면 영상처리 덕분에 이미지 필터 작업만 생각나서 큰일이다.. for문을 여러개 써야해서 살짝 복잡했지만 결국 마름모 모양만 잘 구할 수 있다면 굉장히 쉬운 문제 같다. 현재 위치에서 x, y 축 방향으로 얼마나 떨어졌는지 계산한 뒤, 범위(마름모)안에 들어와있는 경우 집의 개수를 카운트하는 방식으로 해결하였다. for(int k = 0; k = 0){ //이익이 남을때 ans = Math.max(homeCnt, ans); //더 많은 집을 갖는 값으로 업데이트 } } github.com/SuyeonChoi/Algorithms/blob/master/SW%20Expert%20Academy/Java/Simultaion/p2117.java SuyeonChoi/Algorithms Personal A..
처음에 딱 봤을 때 [백준]말이되고 싶은 원숭이 문제가 떠올라서 BFS로 풀어야지 싶었다. 왜냐면 저번에 풀었던 기억(앗 파이썬으로 풀었었군)이 어렴풋이 있었기 때문! 그런데 생각보다 복잡한 문제였다.. 1. 깎을때마다 달라지는 높이 2. DFS처럼 한 경로에 대한 최대 길이를 구해야함. (일반적으로 bfs의 visited배열에서는 방문했던 곳을 다시 큐에 넣지 않으므로) 3. 깎음 여부(이 부분만 원숭이랑 비슷했다...) 이 세가지 때문에 bfs의 늪에서 헤매다가 적절한 Node 클래스를 구성해서 풀었다. class Node { int x, y, height; boolean isCut; int[][] vis; public Node(int x, int y, int height, boolean isCut,..