전체 글

🔗 문제 링크https://www.acmicpc.net/problem/1188💡 문제 풀이 및 해석최대공약수를 구하는 문제이자 패턴 문제이다. 모든 소시지를 합쳐서 1개로 만들고 균일하게 자른다고 생각하면 된다. 이 때, 소시지를 합치는 자리를 칼질하는 경우만 카운팅을 안하면 된다.예제 2번 케이스에서 3 4 => 인당 3/4가 필요하다는 뜻이고, 이는 소세지 3개를 이어 붙여서 1개로 만든 다음에 4등분하면 된다는 뜻이다. 따라서 3번만 자르면 된다.다시 예제 1번 케이스를 보자 2 6 이 들어오고 인당 2/6이 필요하다. 이는 소세지 2개를 이어 붙여서 1개로 만든 다음에 6등분하면 된다는 뜻인데, 그러면, 총 5번의 칼질 중 1번의 칼질은 카운팅할 필요가 없다. 이는 최대공약수로 나타낼 수 있다..
🔗 문제 링크https://www.acmicpc.net/problem/1034💡 문제 풀이 및 해석처음에는 50X50의 문제여서 완전탐색으로 풀 수 있는 문제라 생각했는데, 1000번의 열의 스위치를 킬 수 있다는 선택지 때문에, 2^50의 가짓수라 모든 경우를 찾아볼 수 없는 문제였다.문제의 조건을 보았을 때, K번을 반드시 눌러야 하므로 예제에서 열이 1개일 때, 짝수번이면 변화가 없는 것을 알 수 있다. 이 점에 유의해야 한다.모든 경우를 찾을 수 없다면, 경우를 줄여야 하는데, 이때, 패턴을 찾는 것이 그 방법이다. 예를 들어서 100 100 101 110 이런 식이라고 하자. 100과 101, 110은 같은 열의 솟자가 바뀌기 때문에 최종적으로 모두 1인경우가 나올 수가 없다. 따라서 100..
개발 환경⚙️ [ Java17, Gradle, Spring 3.3.1 ], [ Github, GithubActions ], [ AWS, EC2 - ubuntu, S3, CodeDeploy ] CI/CD?CI/CD는 지속적 통합(Continuous Integration)과 지속적 배포 (Continuous Deployment)의 약자입니다. CI는 지속적으로 코드를 통합하고 자동화된 테스트를 거치는 것을 의미합니다. 이로 인해서 버그가 줄어들고, 코드의 변경사항이 생길 때 마다 수동으로 테스트하지 오류가 줄어듭니다. 또한 개발자들 끼리 서로 코드가 충돌(conflict)날 수 있는데, 이를 잡아줄 수 있습니다. CD는 CI된 코드를 자동적으로 배포하는 것을 의미합니다. 배포 과정을 자동화하여 사람이 낼 수..
1. HTTPhttp는 Hyper Transfer Protocol의 줄임말로써, 주로 HTML 문서, 이미지, 비디오 및 기타 콘텐츠를 전송하는 데 사용됩니다. 그리고 특별한 보안 장치가 없기 때문에, 누군가가 http의 네트워크 신호를 훔쳐갈 수 있습니다. 이러한 문제를 고치기 위해서 https를 사용하게 됩니다. 2. HTTPShttps는 SSL위에 http를 위에 올려서 통신한다고 생각하면 됩니다. 서버가 클라이언트에게 SSL/TLS 인증서를 제공합니다. 이 인증서는 서버의 신원을 증명하고, 클라이언트가 서버를 신뢰할 수 있는지를 확인할 수 있도록 합니다. 이후에는 클라이언트와 서버는 세션 키(Session Key)를 생성하고 교환 및 데이터를 암호화하여 통신하게 됩니다. 3. Route53 - D..
목차- 프로젝트 개요- 내 역할 및 개발과정- 프로젝트를 통한 성장- 개인적인 소감 및 느낀 점- 프로젝트 주소 및 관련 문서들1. 프로젝트 개요프로젝트 팀 이름 : 구름적 사고팀 이름은 팀원들 모두 하나씩 적어서 구름적 사고로 정해졌습니다.(제가 제출한건 구르는 구름인데, 아쉽게 동점이 나와서 사다리 타기에서 떨어졌습니다...)프로젝트 주제 : WEB IDE를 메인으로한 프로젝트웹 IDE를 만들 때, 폴더 단위는 무리가 있다고 생각하여 파일 단위로 컴파일 할 수 있게 만들기로 하였습니다. 기존 스터디 멤버끼리 한 프로젝트인 만큼 스터디에서 알고리즘 스터디를 했었는데, 알고리즘 스터디를 진행할 때, 더 편하게 해줄 수 있으면 좋겠다는 의견이 나왔습니다. 결국 스터디를 진행하면서 웹IDE를 활용하여 즉석에..
🔗 문제 링크https://www.acmicpc.net/problem/11054문제 링크가 제대로 달리지 않아 링크 남겨두었습니다.💡 문제 풀이 및 해석어떤 특정한 수를 기준으로 양쪽에서 증가하는 수열을 찾아야 한다.N의 범위가 1000 이므로 한번에 검사하는 것이아닌 왼쪽과 오른쪽으로 증가하는 수열을 따로 찾아도 된다.한쪽으로 증가하는 부분 수열을 찾는 방법은 아래와 같다.현재 index가 K라면, 0~K-1 까지의 수들을 모두 탐색한다.이 때, K보다 작은 수들을 찾는다.그 중에서 DP[찾은 수] + 1 > DP[K]라면 증가하는 부분 수열이므로 업데이트 해준다.찾은 모든 수들에 대해서 3번을 반복하면 DP[K]가 최댓값을 갖는다.위 방식으로 좌우를 했을 때, rightDp와 leftDp를 더한다..
🔗 문제 링크 14728번: 벼락치기ChAOS(Chung-ang Algorithm Organization and Study) 회장이 되어 일이 많아진 준석이는 시험기간에도 일 때문에 공부를 하지 못하다가 시험 전 날이 되어버리고 말았다. 다행히도 친절하신 교수님께서 아래와www.acmicpc.net💡 문제 풀이 및 해석가치에 따라서 결정하는 냅색 문제이다.우리가 최대로 가져가야 하는 것은 점수이고, 그 비용은 시간이 된다.최대로 가져갈 수 있는 점수는 dp[T]에 있다. 이 때, 역순으로 다이나믹 프로그래밍을 진행한다.dp는 그 시간대의 최대값이므로 검사할 시간이 t라면, dp[t] = max(dp[t], dp[t - time] + score)는 t-time 이 그 시간에서 최대이고 현재 값을 더하면..
🔗 문제 링크 11660번: 구간 합 구하기 5첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네www.acmicpc.net💡 문제 풀이 및 해석누적합 문제로써 매번 계산하면 안 되는 문제다.이미 누적이 된 상태에서 상수시간으로 각각의 케이스를 해결해야 한다.수학적으로 부분구역은 acc [ey][ex] + acc [sy - 1][sx - 1] - acc[sy - 1][ex] - acc [ey][sx - 1] 이미 누적된 데이터만 있으면 상수 시간 안에 해결이 가능하다.누적된 데이터는 acc [y][x]=myMap [y][x]+ac..
RealTone
개발공부 블로그