목록전체 글 (103)
배움 저장소
class Solution { public: int reverse(int x) { bool isMinus = false; if(x==INT_MIN) { return 0; } else if(x INT_MAX/10) return 0; reversed = reversed*10 + x%10; x /= 10; } return isMinus? reversed*-1 : reversed; } };
class Solution { public: string convert(string s, int numRows) { if(numRows==1) return s; int divider = numRows + numRows-2; vector matrix(numRows); for(int i=0; i
leetcode.com/problems/add-two-numbers/submissions/ Add Two Numbers - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 처음에 int형에다가 값을 저장했다가 다시 ListNode를 만들어 반환했다. 그러면 INT_MAX를 넘어서는 값이 나와서 long long 타입으로 바꾸어주었는데 그래도 long long max 를 넘는 값이 나와서 ListNode로 바로 변환해주는 방식으로 바꾸었다. 이 때 buffer를 만..
leetcode.com/problems/two-sum/ Two Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 처음 iterator를 썼다가, Edge Case를 해결하지 못했다. {3,3} 일때 0,0이 나왔음. #include #include using namespace std; class solution{ vector twoSum(vector& nums, int target) { map m; for(int i=0; i

programmers.co.kr/learn/courses/30/lessons/42897 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 programmers.co.kr i번째 집을 방문하면 i-1번째 집을 방문할 수 없고 i-2번째 집을 방문할 수 있다. i번째 집을 방문하지 않으면, i-1번째 집을 방문할 수 있다. 배열을 만들어, 도둑이 집을 방문하며 얻은 최대값을 저장하면된다. 이때 i번째 집은 방문 하거나 방문 하지 않거나 선택할 수 있다. 최대값을 반환하면 되므로 다음과 같은 식을 세울 수 있다. i번째 최적값은 (i-2번째 최적값 ..
programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 먼저 떠오른 방법은 DFS, 정확성 테스트를 통과하였으나 효율성 테스트를 통과하지 못했다. 2차원 백터 위에서 동적할당 기법을 사용하면 된다는 생각은 했는데, 최단 거리 조건을 어떻게 넣을지 몰라 헤매다가 다른 풀이를 찾아보았다. 그런데 최단 거리 조건은 고려할 필요가 없었다. 왔던 자리를 돌아가지 않으면 최단거리 조건을 만족하기 때문이다. DP 기법을 사용할 때 ..
programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr 동적계획법으로 문제를 풀기위해 데이터를 어떻게 구성해야하는지 여러 방법을 고민해봐야 한다. 3개 사용했을 때는 2개 사용한 경우와 1개 사용한 경우를 합친 경우다!라는 발견을 할 수 있어야 동적계획법으로 문제를 풀 수 있다. 증말 쉽지 않다~ N을 1개 사용했을 때, 2개 사용했을 때, 3개 사용했을 때, K개 사용했을 때로 나누어서 생각하는 것이 실마리. K개 사용하여 나온 숫자의 그룹을 S(K)라고 하자. S(2)는 S(1)과 S(1)을 사칙연산 한 경우를 넣고 N을 겹쳐만든 NN을 추가하면 된다. S(1) = { 4 } S(2) = { 44 } + ..
programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 처음 보고 떠오른 생각은 굳이 2차원 벡터로 나타낸 이유가 뭐지?라는 생각이었다. 1차원 백터와 인덱스를 사용하여도 정수 삼각형을 만들 수 있는데. 2차원 벡터로 문제를 풀어야하나 보다. 떠올린 풀이는 DFS. 구현을 했지만 시간 초과였다. 다른 방법을 찾아야 했다. 2차원 벡터를 만들어, 해당 자리까지 도달하기 위한 최대값을 저장해놓으면 될 것 같았다. 이전 값으로 현재 값을 업데이트 하는 방식을 사용하였다. 다른 사람의 풀이를 보니 현재 값을 기준..