예비군을 다녀오면서 잠시 손을 놨었는데 다시 하기가 지~~~~~인~~~짜 귀찮았다. 근데 해야지 하고 막상 앉아서 하니까 재미있어서 계속만들게 됐다. 생각보다 빨리 되서 기분 좋긴한데 내 수학적 능력이 좀 부족해서 추천 알고리즘을 좀더 깔꼼하게 작성하지 못한거 같아서 나중에 보정할 생각이다.또한 좋은 문제라는 것이 뭘까 고민한 시간이기도 하다 많은 사용자정답을 많이 맞춘 문제? 정답률이 60% ~ 30%사이에 있는 문제? 시도한 사람이 많은 문제? sovled.ac는 사람들이 평가를 해주는 커뮤니티 형식으로 되어 있고 나는 이 사이트를 따라가는 사람이니 많은사람이 맞춘만큼 많은 정보가 있어 랭킹이 정확히 매겨질 확률이 높은 그리고 많은 사람이 관심을 가지는 문제가 좋은 문제라고 판단했다.더보기개인적 사정..
sovled.ac에 호출을 적게하려고 노력하다보니 생각할것이 많아졌다. 확실히 내 로직은 빠른데 데이터값을 받아오는데 시간이 걸린다. 중복처리를 안하고 설계를 했다보니 db에 중복으로 데이타가 들어간걸 보고 맨붕 그래서 중복처리 하는김에 로직도 조금씩 리펙토링 했다. 정리가 잘안되서 두서없이 글쓸꺼 같아서 죄송합니다.더보기요즘 올드팝에 빠졌는데https://youtu.be/ZDc-q3Hnldk?si=H_MYjnDW97SUlqVU들으면서 봐주시면 좋겠습니다.api로 user가 푼문제 받아 problem이랑 mapping해서 DB에 저장하기 간단 로직 설명1. GET /solved/user@GetMapping("/user") public void fetchAndSaveUser() throws IOExc..
https://www.acmicpc.net/problem/17837구현 문제이다. 자료구조 선택이 중요한거 같다. 시간을 매우 짧게 줬고 공간을 매우 넓게 주었음으로 공간을 최대한 활용해서 시간을 줄이는 것이 키포인트 이다.나는 2차원 stack 공간 pieceOnBoard + 2차원 색을 저장할 체스판 board + 각각의 체스말의 위치 저장 리스트 pieces를 사용해서 풀었다.처음에는 빨간색 칸으로 이동할때 stack를 사용해서 현재 체스말 위치칸에서 pop하고 다음에 위치하게 될 체스말 위치칸으로 append하는 식으로해서 반대로 돌리고흰색으로 갔을땐 que를 사용해서 앞에서 부터 뺄까 생각했는데 이동하지 않는 말이 앞에 위치할 수 있어서 그리고 한칸에 많아봤자 3개의 stack만 지우면 되서..
백준 문제 추천db를 만지다가 애를 먹었다. ManytoMany를 사용하는 바보같은 코딩을 하다가 정규화를 해야한다는걸 늦게나마 자각하고 다시한번 설계의 중요성을 느꼈다. jpa에 여러가지 기능이 있는거 같은데 일단 시간이 없으니 나중에 리펙토링할 때 한번 사용해보자고 생각하며 마무리했다.sovled.ac api로 Problem 받아 DB에 저장하기간단 로직 설명1. GET /solved/problem@GetMapping("/problem") public void fetchAndSaveProblem() throws IOException, InterruptedException { int start = 1000; int end = 31980; int batchSiz..
백준 문제 추천Json을 사용해서 데이터 처리를 처음 해봤다. 공식 문서를 읽고 했는 데도 데이터가 잘 안떠서 내가 만들면서 잘못한 점도 적으려고 한다. 또한 solved.ac의 api를 사용하는 만큼 호출을 적게 해야하는데 이에 대한 고민도 생각해 봐야겠다. sovled.ac api로 Tag 받아 DB에 저장하기간단 로직 설명1. GET /solved/tagpublic class SolvedAPIController { private final ProblemTagService problemTagService; //24-06-03날자상 206개의 tag존재 5page까지 가져오면 됨 @GetMapping("/tag") public void fetchAndSaveProblemTag() ..
https://www.acmicpc.net/problem/5972 5972번: 택배 배송농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는www.acmicpc.net데이크스트라 문제이다.bfs랑 비슷하게 풀면되는데 어떤 노드에 도착할때 방문하는데 사용한 비용이 더 낮다면 그노드부터는 한번더 탐색하는 방식이다.1번 노드에서 출발한다 1번노드 방문하는데는 0의 비용이든다.1번에서 2,4번으로 이동한다. 2노드로 가는데에는 1의 비용이 들고 4의 노드로 가는데에는 4의 비용이든다.2번,4번노드에서 이동한다. 2에서 1로 가려는데 1로 가는 최소 비용이 0이라 2보다 큼으로 못간..