전체 글270 순열과 조합 (로또 : 6603) 백준 순열은 순서가 있고 조합은 순서가 없다 ex : 1 2 3 , 3 2 1은 순열에서 순서가 중요가 하기에 다른 수 지만 조합에서는 뽑았다는 '의미'에서 동일하기에 같은 수로 본다 dfs 재귀 스택프레임 void dfs(int idx) { ans.push_back(v[idx]); if (ans.size() == 6) { for (auto a : ans) cout > a; dfs(0); } return 0; }헷갈린 부분 이 코드에서 로또 번호 6개를 뽑으면 된다 여기서 엄청 헷갈렸던 것이 pop_back()이 두개라서 매우 헷갈렸다. 첫번째 pop_back() 여기서 pop_back()은 수가 1 2 3 4 5 6 7 까지있는데 현재 1 2 3 4 5 6까지 선택했다면 다음은 6을빼고 7을 .. 2021. 8. 23. leetcode , Sliding Window Maximum 문제 출처: https://leetcode.com/submissions/#/1 풀이 방법 슬라이딩 윈도우 각 칸을 [ ] 크기만큼 보면서 이동하면된다. 이때 multiset을 이용하면 가장 큰값을 알 수 있다. 빼야하는 값은 k만큼 이동하기에 num[i-k]이다 다음 원소를 볼때 먼저 k개를 유지하기 위해서 num[i-k]를 지운다. 값을 삽입 내부에서 정렬이 되어서 max값을 찾을 수 있다. 그 max를 정답 배열에 삽입.. for (int i = k; i < nums.size(); i++) { m.erase(m.find(nums[i - k])); m.insert(nums[i]); ans.push_back(*m.begin()); } 2021. 8. 19. valdation(2) 2021. 8. 19. validation(1) validation 처리 오류가 났을 경우 오류 내용을 보여주면서 다시 입력했던 내용을 보여주어야한다. ex : 상품을 등록 할때 등록 정보가 올바르지 않다면 오류 내용과 틀린 등록 내용도 같이 보여주어야한다 이럴때 validation을 처리할때 해당 오류를 객체에 넣어서 관리를 해주면된다. 검증이 실패했을 경우 오류를 보관 할 곳을 생성 ex : 검증 오류를 보관 Map errors = new HashMap();검증 로직 //검증 로직 if(!StringUtils.hasText(item.getItemName())) { errors.put("itemName", "이름이 없습니다"); } ~~검증이 실패한다면 다시 검증전으로 이동 //검증이 실패하면 다시 입력폼으로 if(!errors.isEmpty()) .. 2021. 8. 19. 이전 1 ··· 55 56 57 58 59 60 61 ··· 68 다음