분류 전체보기151 [백준] 2156 포도주 시식 c++ 문제 링크 https://www.acmicpc.net/problem/2156 KEY [백준] 계단오르기와 상당히 유사한 문제이다. 계단오르기 문제는 항상 연속 몇칸이상을 못간다는 등의 제약조건이 있다. 지금 이 문제 또한 연속 3잔의 포도주를 마실 수 없다는 조건이 있으므로, 현재 시점에서 구할 수 있는 최댓값의 후보를 파악하는 것이 중요하다. 후보는 다음과 같다. 후보1) i-3번째 잔까지의 최댓값 + i-1번째 잔 + i번째 잔 후보2) i-2번째 잔까지의 최댓값 + i번째 잔 후보3) i-1번째 잔까지의 최댓값 다음 후보들 중 최댓값을 구하면 되는 문제이다. 두 문제의 차이점 계단오르기 문제는 지금 칸의 점수를 무조건 포함해야 하기 때문에 후보3이 없어야 한다. 하지만 지금 이 문제의 경우 자신을 .. 2022. 2. 16. [백준] 1912 연속합 c++ 문제 링크 https://www.acmicpc.net/problem/1912 KEY i-1번째까지의 수열의 합에 i번째 숫자를 더해도 i번째 숫자보다 작다면 차라리 i번째 숫자부터 다시 세는 것이 낫다. 수열 {10, -4, -9, 8}로 예를 들어보자. 처음은 10이다. 최댓값은 10 그대로일 것이다. 두번째 -4로 왔다. 최댓값은 (10-4)와 -4 둘 중에 큰 6이 된다. 세번째 -9로 왔다. 최댓값은 (6-9)와 -9 둘 중에 큰 -3이 된다. 마지막 8이다. 최댓값은 (-3+8)와 8 둘 중에 큰 8이 된다. 이렇게 완성된 최댓값을 저장한 배열은 {10, 6, -3, 8}이고, 정답은 이 중 최댓값인 10이다. Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 .. 2022. 2. 15. 백준 1149 RGB거리 문제를 보자마자 2학년때 수업시간에 배웠던 내용이 떠올랐다. 이틀연속으로 같은 식당에서 먹지 않고 8일간 식사를 하는데 드는 최소비용을 구하는 것이다. 단순히 "현재 최소비용을 택하면 되겠지" 하면 틀린다. 같은 식당이 2일 연속나오면 안되므로, 택해야 되는 시점이 현재라면 어제의 것을 고려해야한다. 따라서 해결방법은, 어떤시점 에서 식당A를 선택하면서 끝났다고 할때, 식당 B 혹은 식당C를 선택하면서 끝났다고 할때, 각각의 최종값에서 가장 최소비용이 되는 것을 택하면 된다. 위 식당의 문제를 예를 들어보면, 2일차가 됐을때의 최소값은 C->A, A->C의 7이다. 3일차가 됐을 때의 최소값은 B->A->C (혹은 C->A->C)의 9이다. 이런식으로 8일째 세 식당에서 밥을 먹은 경우 중 누적비용이 가.. 2022. 2. 15. [댓글] 댓글 구현하기(2) 댓글 구현(1) 편에서 ajax통신을 통해서 Comment객체를 제대로 불러오는 것까지 확인했다. 이제 불러온 Comment객체를 이용해서 화면에 뿌려야한다. ajax함수로 가서 done()부분에 다음과 같이 추가해준다. 이렇게 해서 실제로 댓글을 달아보면 다음과 같이 제대로 댓글이 달리지만 새로고침했을 때 다시 사라진다. --> story홈페이지를 불러올때 image와 함께 불러와야한다. 즉, Image모델에 comments 변수를 하나 만들어서 Image모델만으로 그에 딸린 댓글까지 다 볼 수 있도록 한다. Image테이블에 Comment테이블과 양방향매핑해준다. 또한 댓글을 id역순으로 불러올것이기 때문에 @OrderBy를 붙여준다. 이제 화면에 보여질 부분에 대해서만 forEach로 돌려서 모든 .. 2022. 2. 8. [댓글] 댓글 구현하기(1) 1. 댓글 모델 생성하기 댓글에는 기본적으로 누가 썼는지, 어떤 이미지에 달린 댓글인지, 댓글 내용은 무엇인지에 관한 정보가 필요하다. ManyToOne연관관계를 사용하여 User, Image 테이블을 Eager(Default)전략으로 가져오는 방법을 사용한다. 2. ajax통신을 위해 .js(Client-side) 작성 jsp파일에 id값이 storyCommentInput-이미지번호 인 댓글작성input칸과, storyCommentList-이미지번호 인 댓글포스팅칸이 존재한다고 할때 댓글 내용과 이미지id 값을 json으로 변환한 후 서버에 전송한다. 3. APIController, Service, Repository 구성과 기능구현 이제 Server-side에서 데이터를 받아 처리하는 일만 남았다. .. 2022. 2. 7. 백준 11403 경로찾기 플로이드 와샬알고리즘을 이용해서, 경로 i -> k와 k -> j 가 존재한다면, 경로 i -> j도 존재하도록 하는것이 핵심이다. 플로이드-와샬? 모든 정점에서 모든 정점으로의 최단 경로를 구하고 싶다면 플로이드 와샬 알고리즘을 사용해야 한다. Key point는 '거쳐가는 점'을 기준으로 최단거리를 구하는것! 플로이드 와샬은 다이나믹 알고리즘을 사용한다. 자세한 설명은 아래 사이트를 참고하였다. https://blog.naver.com/ndb796/221234427842 24. 플로이드 와샬(Floyd Warshall) 알고리즘 지난 시간에는 다익스트라(Dijkstra) 알고리즘에 대해 학습했습니다. 다익스트라 알고리즘은 하나의 정점... blog.naver.com 2022. 2. 5. 이전 1 ··· 20 21 22 23 24 25 26 다음