전체 글 242

백준 - 동전2 , 제곱수의 합

dp유형중 헷갈리는 유형을 정리해보려고 급하게 쓴다. 이런 유형들의 문제는 착각하기 쉬운게 가장 적게 사용하도록 만들라고 해서 조건에 해당하는것중에서 가장 큰거부터 골라나가면 가장 적게 사용하고 구해지겠지? 라고 착각하는것이다. 말이 이상한데 풀어말하자면 동전2 같은 경우에는 동전 종류 3개 이것들을 사용해서 합 15를 만드는데 동전을 가장 적게 사용할때를 구하는건데 동전 종류중에서 12원이 가장 크므로 12를 선택해버리면 남는 3원은 1원짜리 3개로 채워야하기 때문에 동전을 4개 써야하는데 이건 최소가 아니다. 5원동전 3개를 쓰면 해결되기 때문. 이런 오류를 범해서는 안된다. 아래는 제곱수의 합 코드 #include int main(void){ int N; int Dp[100001] = {}; sca..

알고리즘/DP 2020.04.26

나의 부족함을 돌아보며.

어제 프로그래머스에서 백엔드 채용을 위한 코딩테스트를 진행했다. 이런 글을 쓰는건 나도 참가했기 때문이다. 결과는 망했다. sql 문제만 제대로 풀고 나머진 다 끄적거리기만 하다 제대로 된 답을 내지도 못했으니까.. 맞다. 이 글은 사실 푸념할려고 쓴글이다. 사실 개발은 즐겁고 새로운 기술을 배우는것도 좋은데 알고리즘은 왜 이렇게 귀찮았을까. 학교 다닐때 알고리즘 공부라곤 학교에서 수업을 따라가고 열심히 들은것 뿐 따로 알고리즘 문제를 인터넷에서 찾아서 풀어보거나 그러지는 않았다. 하기 싫었다기보다는 해야겠다는 생각도 많고 시도도 했었지만 그 만큼 동기부여라던지 흥미를 못붙였던게 큰거겠지.. 지금은 내가 왜 그랬을까 하면서 후회하곤 한다. 그래도 후회해도 무슨 소용이 있겠는가 그것도 결국 나의 선택이였고..

잡담 2020.04.19

프로그래머스 - 네트워크

문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. 각 컴퓨터는 0부터 n-1인 정수로 표현합니다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[..

알고리즘 2020.04.19

프로그래머스 - 다리를 지나는 트럭

문제 설명 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. ※ 트럭이 다리에 완전히 오르지 않은 경우, 이 트럭의 무게는 고려하지 않습니다. 예를 들어, 길이가 2이고 10kg 무게를 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 따라서, 모든 트럭이 다리를 지나려면 최소 8초가 걸립니다. solution 함수의 매개변수로 다리 길이 bridge_length, 다리가 견딜 수 있는 무게 weight, 트럭..

알고리즘 2020.04.19

ajax 를 이용한 실시간 랭킹 반영

개인적으로 만들고 있는 프로젝트에서 조회수가 가장 높은 글 top10을 만들어주는 기능을 구현하려고 했다. 여러가지 방법들을 찾아봤지만 ajax 를 사용하는 방법이 가장 간편할 것 같아서 선택했다. setInterval 을 사용해서 ajax 의 요청을 일정주기마다 요청하는것인데 처음에 생각했을때는 많은 유저가 접속하는 상황이라던지 관리할 데이터가 크면 서버에 부하를 줄 수도 있고 setInterval 을 요청하는 주기안에 요청이 완료되지 않으면 발생할 수 있는 문제점들 때문에 잠시 고민했지만 db에서 많은 순서로 10개까지만 데이터를 가져오고 또 1분에 한번씩만 처리를 해주면 되는 기능이였기 때문에 그대로 진행하기로 했다. 서론은 여기까지하고 구현한 코드를 먼저 적어보겠다. $(function () { ..

Javascript 2020.04.16

jpa

http://wonwoo.ml/index.php/post/1004 Spring data JPA JPA에 대해서 많은 포스팅은 한듯하다. 하지만 계속 계속 봐야겠다. 할때마다 까먹는다. 오늘은 Spring data jpa를 포스팅해보자. Spring data JPA Spring data jpa는 스프링 프레임워크에서 JPA를 편리하게 사용할 수 있도로고 제공해주는 프로젝트이다. 이 프로젝트는 데이터 접근 계층을 개발할 때 지루하게 반복되는 CRU… wonwoo.ml 스프링 프로젝트를 하면서 DB와의 연결은 필수적이다. 지금까지 문제없이 잘 사용해왔지만 좀 더 궁금한 점이 있어서 이것저것 찾아봤는데 좋은 글이 있어서 링크로 남긴다. 확실히 글로 읽어보니 머릿속에 정리가 더 잘되는 느낌이다. Spring da..

DB 2020.04.15

Java Spring - @RequestBody, @ResponseBody 정리

1. @RequestBody ajax 를 사용할때 같이 쓰는데 이때 JSON.stringify 함수를 이용하여 데이터를 보내고 contentType을 "application/json"으로 설정해주어야 한다. 즉 ajax로 보낸 json 객체의 정보를 스프링에서 받아올때 사용한다. @Controller public class MainController { @ResponseBody @RequestMapping("/ex") public void init(@RequestBody User user) { user.getName(); user.getAge(); } } 스프링에서는 이렇게 받을 수 있다. 이때 User 클래스의 프로퍼티는 전송된 JSON 객체와 프로퍼티명이 일치해야하며 getter와 setter가 있어..

BackEnd/Java Spring 2020.04.14

프로그래머스 - 가장 큰 수

테스트 케이스는 통과하는데 채점에서는 시간초과 오류가 발생한다. dfs를 먼저 떠올렸는데 여기서 사용하기에는 적당한 방법이 아닌가보다. #include #include #include using namespace std; int visit[100000]; vector v; vector v3; vector v2; string temp=""; bool Standard(string A, string B) { if (A + B > B + A) return true; return false; } void dfs(vector n ,int count){ if(n.size() == count){ // 벡터 사이즈만큼 temp에 순열을 붙인 문자열을 만들게 됐을때 for(int i=0;i

알고리즘 2020.04.13

프로그래머스 - 정수 삼각형

문제설명 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 제한사항 삼각형의 높이는 1 이상 500 이하입니다. 삼각형을 이루고 있는 숫자는 0 이상 9,999 이하의 정수입니다. 이 문제는 백준사이트에서도 풀어봤었다. (물론 그때는 오류가 나서 성공은 못했다.) 그래서 이번에는 맞춰버리겠다는 생각으로 풀어봤다. dp 문제였는데 거쳐간 숫자의..

알고리즘 2020.04.12