일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Google Place Photo API
- 알고리즘
- 우아한테크코스
- 무중단배포
- 코틀린
- subprocess에러
- S2139
- DynamicWebProject
- 레벨로그
- 코틀린뽀개기
- 데이터베이스락
- java
- 스프링트랜잭션
- 백준
- 객체지향생활체조
- KotlinInAction
- kotlin
- 트랜잭션
- 트랜잭션속성
- GithubOAuth
- 자바비동기
- 트랜잭션성질
- mysqld.sock
- servlet프로젝트
- 테코톡
- tomcat설정
- 코틀린기초
- 리버스프록시
- jsp프로젝트
- ObjectCalisthenics
- Today
- Total
목록Algorithms (37)
초이로그
가장 큰 수가 가장 좋은 문제라고 느껴진다....! K번째수(Level.1) 문제 / 풀이 문제에서 시키는 대로 구현만 하면 된다. 배열을 자르는 것은 새로운 배열 객체에 할당하고 정렬은 Arrays.sort()를 사용했다. 가장 큰 수(Level.2) 문제 / 풀이 그나마? 가장 난이도 있던 문제...! 새로운 정렬 방식을 찾아 풀어야하기 때문에 새롭게 느껴졌다 개인적으로 이런 새로운 사고를 해야하는 문제를 코테때 만나면 너무 어렵게 느껴진다🤯 Arrays.sort에서 Comparator를 사용해 비교 방식을 재정의하였다. 두 정수를 붙여서 더 큰 숫자를 만드는 만드는 경우로 정렬하면 된다. H-Index(Level.2) 문제 / 풀이 예시도 하나밖에 없어서 문제만 보고는 못푼 문제... 무조건 위키백..
Prim알고리즘을 사용하여 MST를 구성해서 풀어냈다. prim을 구현하고 계속 테스트 케이스의 답과 다르길래 문제를 다시 읽어보니 거리에 제곱을 해줘야하는데 계속 두점 사이의 거리로 풀어서 루트를 씌웠다... https://github.com/SuyeonChoi/Algorithms/blob/master/SW%20Expert%20Academy/Java/%EA%B7%B8%EB%9E%98%ED%94%84/p1251.java
애증의 문제다... 문제만 보면 내가 전혀 못풀리 없어 보여서(??) 이 악물고 풀어봤지만 항상 시간 초과가 떴었다. 이 문제에서 시간초과를 줄이기 위해서는 순차탐색을 하며 1. i번째가 사이클인지 판별할때, 발견된 사이클은 다시 방문하지 않는다.(i를 포함하지 않는 사이클이라도) 2. 이미 방문한(하지만 사이클은 아닌) 경우도 방문하지 않는다. 두개로 시간을 줄여나가야하는데 BFS에만 매달렸던 나는 도저히 1번을 구현할 수가 없었다... 결국 bfs코드를 쫙 지워버리고 dfs로 풀었더니 구현과정에서 start와 next를 체크하는게 다소 헷갈렸지만 한번에 맞을 수 있었다.. 빠르게 정답에 맞는 솔루션을 선택하는 연습도 필요한것 같다 https://github.com/SuyeonChoi/Algorithm..
"최단경로"라는 말을 보자마자 다익스트라, MST 등만 생각하다가 한시간째 못풀고 결국 DFS로 푼다는 힌트를 얻어서 풀어냈다... N 사이즈가 작긴 하지만 12이하이기 때문에 백트래킹도 이용했다. 역시 알고리즘은 한발짝 물러나서 생각하는게 필요하다.... 백준 알고리즘분류를 자꾸 열어보지 말자!!! github.com/SuyeonChoi/Algorithms/blob/master/Jungol/p1681.java SuyeonChoi/Algorithms Personal Algorithm Study::solving BOJ, Programmers, and SW Expert Academy - SuyeonChoi/Algorithms github.com
소수찾기를 제외한 두문제는 완전탐색보단 구현에 더 가깝게 느껴졌다. 모의고사 (Level.1) 문제 / 풀이 수포자 삼인방의 반복되는 찍기 방식을 각각 배열에 저장하고 문제 인덱스와 값을 비교했다. 처음에는 각 수포자의 배열마다 index 변수를 생성했는데 나머지 연산으로 개선하여 변수의 갯수를 줄였다. 다른 사람의 풀이를 보니까 스트림을 사용했던데 시간은 좀더 걸린다고 하니 나중에 찾아봐야겠다. 소수찾기 (Level.2) 문제 / 풀이 가장 완전탐색스러웠던 문제라고 느꼈다. 주어진 numbers를 정수 배열로 만든뒤 부분집합 함수를 생성해 숫자를 뽑았다. 그리고 뽑은 숫자를 조합 함수를 통해 가능한 숫자 조합을 만들어서 소수인 경우 Set 자료구조에 저장했다. 숫자의 최대 길이가 7로 매우작아 그냥 N..
1. 일꾼(?) 두명이 꿀을 채취하는 시작점을 조합을 이용해서 선택 2. 만약 채취량이 기준 C를 초과하는 경우 부분집합을 이용해서 최고 채취량을 선택 인덱스는 모든 칸을 0~N*N-1이라고 생각하고 (i / N, i %N) 좌표로 계산 조합과 부분집합을 모두 재귀를 사용해서 풀었다. N, M이 매우 작은 범위라서 쉽게 풀수 있었던것 같다. github.com/SuyeonChoi/Algorithms/blob/master/SW%20Expert%20Academy/Java/%EC%99%84%EC%A0%84%ED%83%90%EC%83%89/p2115.java SuyeonChoi/Algorithms Personal Algorithm Study::solving BOJ, Programmers, and SW Exper..