import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { static int cnt = 0; public static void dfs(int sum, int n) { int[] arr = {1, 2}; for (int i = 0; i < arr.length; i++) { sum += arr[i]; if (sum == n) { cnt++; sum -= arr[i]; } else { if (sum < n) dfs(sum, n); sum -= arr[i]; } } } public static void main(String[] args) throws Exception { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(bufferedReader.readLine()); dfs(0, n); System.out.println(cnt); } } dp를 잘 몰라서 자력으로 dfs 방식으로 풀었는데 그닥 좋지 않은 접근일까요...?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 회원, 부서 테이블을 생성하다 고민이 생겨 해당 강의를 다시 복습해봐도 어떻게 하는게 좋을지 모르겠어 질문하게 되었습니다. 먼저 회원테이블은 회원 ID (PK) 부서 ID (FK, 부서테이블PK) , NULL 부서 테이블은 부서 ID (PK) 부서생성자 ID(FK, 회원테이블PK), NOT NULL 로 구성되어 있는 상황입니다. 필드의 개수를 최대한 간략히 나타내었는데, 이러한 상황에서 1. 중간테이블을 만드는게 나을지 ( 이 경우 유저ID, 부서ID, type{소속 or 생성}), 2. 회원테이블의 부서ID와 부서테이블의 회원ID에 각각 ManyToOne을 걸어주는게 나을지 더 좋은 방법을 찾기가 어려워 질문드립니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] libs폴더로 이동 후 java -jar SpringRecture-0.0.1-SNAPSHOT.jar 실행했을 때 발생하는 오류인데 뭐가 문제인가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 아까 큰돌님 강의에서 컨트롤러가 메인 로직을 담당한다고 배웠는데, AI 퀴즈에서는 모델이 비즈니스 로직을 담당한다고 하네요..? 메인 로직과 비즈니스 로직이 다른건가요? 모델이 데이터를 관리하는 것까지는 맞는 것 같은데 비즈니스 로직도 관리하나요? 그럼 스프링 개발 시 Service 레이어도 Model에 속한다고 봐도 될까요? 항상 강의와 유튜브 잘 보고 있습니다. 감사합니다!
word = 'python' 변수 word 에서 두 번째 글자인 'y' 를 'z' 로 바꾸고 싶어서 word[1] = 'z' 를 실행했더니 TypeError: 'str' object does not support item assignment 에러가 발생했습니다. 이는 문자열이 불변 객체이기 때문인가요? 그리고 특정 위치의 문자열을 치환하는 방법은 무엇인가요?
로그인 성 공시 defaultSuccessUrl 에서는 "/todos" 로 설정하고 successHandler의 CustomLoginSuccessHandler 에서는 "/" 로 되어 있을때 어디로 리다이렉트 되어야하나요? 설명에는 defaultSuccessUrl 가 우선순위라고 하셨는데, 실행해보면 / 로 갑니다.
이번 강의 끝내고 로드맵대로 JPA 기본1편로 건너가 학습중인데요. JPA 기본편에선 jpa라 당연하겠지만 이전보다 더 DB 관련 지식을 요구하는 것 같더라구요. 예전에 DB를 약간 학습했던 적이 있어 드문드문 떠오르는 기억에 아직까진 강의를 듣는데는 큰 어려움은 없으나 DB를 학습했던건 오래전일고 깊이 있게 한 것이 아니라서 DB관련 지식이 희미하고 매우매우 얕게만 남아있습니다. 영한님 말씀 들어보면 실무에 투입되면 DB에 대해서도 꽤 잘알아야 하는 것 같구요. 앞으로의 미래를 생각한다면 한번은 DB를 따로 더 공부해야한다고 생각하고 있습니다. 그래서 스프링 MVC 강의에 앞서 모든 개발자를 위한 HTTP 웹 기본 지식 라는 강의로 웹에 관한 강의를 해주셨는데요. 정말 큰 도움이 됐습니다. 이것처럼 DB도 선수 학습 강의로 개설 계획이라던가 없으신건가요? 있으시다면 언제쯤 개설되는지 알 수 있을까요? DB강좌도 모든 개발자를 위한 HTTP 웹 기본 지식 처럼 있다면 많은 도움이 될 것 같습니다.
안녕하세요 강사님 IDE 작업화면을 최대로 해도 글자가 잘 안 보일 수 있는데 작업화면을 화면의 일부로 사용하고 오른쪽에 글을 보여주시면 노트북으로 강의를 보는 입장에서 글자가 작아서 잘 안 보입니다. 다음 강의에는 노트북으로 학습하는 학습자의 입장도 고려 부탁드립니다. 강의는 너무 좋은 내용입니다 ! 쵝오 😀 감사합니다.
태현님! 안녕하세요, 먼저 이런 좋은 강의를 만들어 주셔서 감사드립니다 🙂 다만, 듣다가 또 하나의 질문이 있어서 말씀드리고 싶습니다! 바로 널 아님 단언 관련입니다! 예제 코드에서는 아래와 같이 작성을 해주셨는데요! fun startsWith(str: String?): Boolean { return str!!.startsWith("A") } 이런 경우 str 파라미터가 null이 들어올 가능성이 있지만 해당 코드를 실행할때 null이 절대 아니야라고 명시적으로 표현하기 위하여 !!를 붙여준다고 이해했습니다! 다만, 이런 경우는 굳이 널 아님 단언을 사용하는게 아니라 파라미터의 String?타입을 String으로 두면 어떨까 싶은 생각이 들어서요! 이렇게 된다면 굳이 널 아님 단언을 사용할 필요가 없어 보이는데 다른 곳에서 사용하는 예시가 따로 있는지 궁금하여 질문을 드리게 되었습니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요, 강의 수강 중 질문이 생겨 여쭤봅니다. 요구사항 분석을 확인하면 '상품 등록'이 있습니다. 상품 등록은 회원이 직접 상품을 등록하는 것일텐데 도메인 모델 설계 부분에서 Member 엔티티와 Item 엔티티 간 연관관계가 없는 이유가 궁금합니다. Member 엔티티가 Item을 등록하는 기능도 있으니 Member 엔티티와 Item 엔티티 간 연관관계도 설정해주어야 하지 않나요 ?!
안녕하세요 🙂 "도메인 모델을 직렬화 했다가, RDB에 저장했다가" 하는 경우도 JPA와 도메인모델 분리가 필요한 경우라고 생각되는데 어떻게 생각하시나요? 도메인모델이 생성되었을때 영구보관이 필요한게 아니라, 어느정도 상태머신이 진행된 후 영구 보관이 필요하여 그전에는 레디스나 다이나모 같은 저장소에 보관하다가, 이후에 RDB에 영구보관을 하는 경우가 좀 더 자세한 예시일 것 같아요. 이 경우 JPA에서 DB 성능등을 이슈로 양방향맵핑을 하는 경우 순환참조로 인한 직렬화 이슈가 생기기 때문에 어떻게 해결할 수 있을지 고민하다가 이때 모델 분리를 선택한 경험이 있습니다. -- 무조건적인 지향을 하는게 아니라 필요에 따라 기술을 선택할 수 있게 강의를 진행해주시는 점 너무 많이 배우고 있습니다. 감사합니다.
안녕하세요. 강의 수강신청 후 듣고 있는데 개발 환경 구축이 안 됩니다. 전자정부프레임워크, 톰캣, 아파치 모두 설치하였는데 프로젝트에 x 파일이 뜨며 오류가 해결되지 않습니다. 에러 발생 시 따라하라는 파워포인트 페이지를 따라해도 계속 오류가 뜹니다. 해결방법을 알려주시면 감사하겠습니다. 얼른 다음 강의 듣고싶은데 답답하네요..
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
안녕하세요 유익한 강의 잘 듣고 있습니다. 63. IT/데이터 분야를 위한 지식: XML 데이터 포멧 다루기2 (업데이트) 의 끝 부분에서 강사님이 만드신 xml test (10:05초 부분)를 위한 url 테스트 실행시, 실행은 되는데 하단에 경고문구가 나와서요. 컬럼명 중에 대소문자하고 관련이 있을 것 같긴 한데... 제가 따로 변경한 게 없고 강의파일 그대로 실행한거 거든요. [오류내용] C:\Users\SKTelecom\AppData\Local\Temp\ipykernel_1828\4110160249.py:20: XMLParsedAsHTMLWarning: It looks like you're using an HTML parser to parse an XML document. Assuming this really is an XML document, what you're doing might work, but you should know that using an XML parser will be more reliable. To parse this document as XML, make sure you have the Python package 'lxml' installed, and pass the keyword argument `features="xml"` into the BeautifulSoup constructor. If you want or need to use an HTML parser on this document, you can make this warning go away by filtering it. To do that, run this code before calling the BeautifulSoup constructor: from bs4 import XMLParsedAsHTMLWarning import warnings warnings.filterwarnings("ignore", category=XMLParsedAsHTMLWarning) soup = BeautifulSoup(xml_data, 'lxml')
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 궁금한점이 있습니다. 독립적인 스레드 풀을 만들어 사용할 때 스레드 수는 어떻게 측정하는게 좋을까요? 예를들어 CPU Core 수가 4개인 경우에 일반적으로 사용하는 스레드 수는 어떻게 할당할지 감이 안잡힙니다. 독립적인 스레드 풀을 만들 때 CPU Core 수에 따른 적절한 스레드 수가 있는지, 아니면 직접 스레드 수를 조절해가며 테스트를 해봐야하는지 궁금합니다.
안녕하세요~ 어뷰징 방지에 대한 질문을 드리고 싶습니다. 현재, 어뷰징 방지를 위해 분산락을 잡고 해당 유저가 특정 게시물에 대한 조회수를 10분 동안 1만 올릴 수 있도록 설계해주셨는데요. 레디스의 키-벨류 로도 충분히 위와 같은 어뷰징 방지를 설계할 수 있지 않나요? SETNX (key=유저+게시글, value=1, TTL=10분) 만약 이 값이 이미 존재한다면 조회수를 올리지 않는 방식으로 구현해도 충분할 거 같은데, 분산락으로 이 로직을 구현하신 이유가 궁금합니다. 감사합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 물리 트랜잭션 과 논리 트랜잭션에 대해 가령 다음과 같이 있을 경우 @Transactional 의 경우 dataSource.getConnection(); 과 같이 트랜잭션이 시작되는 걸 의미 하니 placeOrder 메소드 전체가 물리 트랜잭션에 해당하고 그 이후 내부의 각 메소드 나 비즈니스 로직에서 사용되는 트랜잭션은 논리트랜잭션에 해당한다고 이해 하면 될까요? @Service public class OrderService { @Transactional // 논리 트랜잭션 1 public void placeOrder() { orderRepository.save(); paymentService.processPayment(); // 논리 트랜잭션 2 (propagation 여부에 따라) } }