교재에서는 bfs로 구현했는데 저는 dfs로 구현해봤습니다. 그랬더니 시간초과가 발생했네요. 제가 작성한 코드가 올바른답이긴하지만 시간초과가 발생하는건지, 아니면 그냥 틀린건지 궁금합니다. 또한 올바른답 이맞다면 왜 시간초과가 발생하는지(시간복잡도 차이가 왜 크게 나는지)도 궁금합니다. #include <iostream> #include <vector> #include <queue> using namespace std; int maxdepth=-1; vector<vector<int>> a; vector<bool> visited; void dfs(int k, int depth); int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n,m; cin >> n >> m; a.resize(n + 1); visited = vector<bool>(n + 1, false); for (int i = 0; i < m; i++) { int s,e; cin >> s >> e; a[e].push_back(s); } vector<int> result(n + 1, 0); for (int i = 1; i <= n; i++) { dfs(i, 0); result[i] = maxdepth; maxdepth = -1; fill(visited.begin(), visited.end(), false); } int realmax = -1; for (int i = 1; i <= n; i++) { if (result[i] > realmax)realmax = result[i]; } for (int i = 1; i <= n; i++) { if (realmax==result[i])cout<<i<<' '; } } void dfs(int k, int depth) { if (maxdepth < depth)maxdepth = depth; visited[k] = true; for (int i : a[k]) { if (!visited[i]) { dfs(i, depth + 1); } } visited[k] = false; }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 왼쪽과 같이 코드를 작성하여 team.getMembers().add(member); 을 수행하면 MEMBER 테이블의 TEAM_ID(FK)가 업데이트가 된다고 말씀하셨습니다. 아래와 같이 @OneToMany, @JoinColumn 어노테이션을 사용하면 Team 객체에 members의 객체가 추가될 때 마다 JPA가 자동으로 테이블의 FK를 수정하고 업데이트를 해준다는 것으로 이해를 하면 되는건가요? 설명 부탁드립니다 !
docker run -d -p 8080:3000 --name defaultColorApp devwikirepo/envnodecolorapp 제가 이해하고 있는 부분 해당 도커 실행 명령어 중 docker run -d -p 8080:3000 명령어는 호스트의 8080 포트를 컨테이너의 3000 포트에 매핑하여 실행한다. 제가 시도한 부분 docker run -d -p 8080:3000 docker run -d -p 8080:3001 로 내부 컨테이터 포트를(3000 -> 3001) 바꾸게 되면 동작하지 않습니다. 제 생각에는 해당 이미지에 할당된 포트번호 있다고 예상했고 docker image inspect devwikirepo/envnodecolorapp 을 실행 후 해당 이미지 Json에 포트번호가 있는것을 확인했습니다. "ExposedPorts": { "3000/tcp": {} }, 제가 궁금한 부분 1. "ExposedPorts" 의 "3000/tcp": 내부 컨테이너 포트번호는 별도로 세팅할 수 없나요? 2. 제가 시도하여 찾은 "ExposedPorts"의 "3000/tcp": {} 이 docker run -d -p 8080:3000 명령어의 :3000 과 같나요? 3. 8080:3001 로 내부 컨테이너 포트번호를 변경 시 컨테이너 실행은 정상적으로 되지만 왜 Nginx에 접속할 수 없는 걸까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 아래는 제 IDE 상황인데 테스트는 통과하는데 memberRepository랑 discountPolicy 주소를 찍게 했는데 그것도 뜨지 않고 영환님 처럼 로그가 뜨지 않네요 설정의 문제일까요??
인터셉터 전 / modal : /@modal/default.tsx children : /page.tsx /i/flow/login (링크 클릭) modal : /@modal/i/flow/login/page.tsx children : /i/flow/login/page.tsx /i/flow/login (직접 접속) modal : /@modal/i/flow/login/page.tsx children : /i/flow/login/page.tsx 인터셉터 후 / modal : /@modal/default.tsx children : /page.tsx /i/flow/login (링크 클릭) modal : /@modal/(.)i/flow/login/page.tsx children : /page.tsx /i/flow/login (직접 접속) modal : /@modal/default.tsx children : /i/flow/login/page.tsx 인터셉터와 패러렐 각각은 이해를 했습니다. 패러렐은 위에 적어놓았고, 인터셉터만 적용했다면 /i/flow/login (링크 클릭) 했을 때 {children}에 /(.)i/flow/login/page.tsx가 들어갔을테고, /i/flow/login (직접 접속) 했을 때 /i/flow/login/page.tsx가 들어갔겠죠. /i/flow/login (링크 클릭) 했을 때 인터셉팅 동시에 패러렐이기 때문에 {modal}에 /@modal/(.)i/flow/login/page.tsx이 들어갑니다. 그런데.. {children}에는 왜 /page.tsx가 들어가는지 모르겠습니다. 반대로, "그렇다면 왜 /page.tsx가 들어가면 안 되는데?" 이 질문에도 대답을 못하겠습니다 ㅠㅠ; 그리고 /i/flow/login (직접 접속) 했을 때도 {modal}이 왜 /@modal/default.tsx인지 모르겠습니다.
선생님 안녕하세요foreast에서 프로젝트 세팅할 때 수업영상에 안나온 부분을 체크해야 다음 화면으로 넘어갈 수 있어서요! 검색해봤는데 이렇게나와있는데 TLS mode에서 requireTLS선택하고 connect via SSH 활성화 안하는거 맞는지 궁금합니다 Prefer TLS (TLS 선호) : 이 옵션은 서버가 TLS를 지원하면 TLS를 사용하고, TLS를 지원하지 않으면 암호화되지 않은 연결로 대체합니다. 보안이 중요한 운영 환경에서는 일반적으로 권장되지 않습니다. 이는 필요한 보안 수준을 제공하지 못할 수 있기 때문입니다. Disable TLS (TLS 비활성화) : 이 옵션은 TLS를 사용하지 않고 암호화되지 않은 연결만을 사용합니다. 개발이나 테스트 환경에서는 문제가 되지 않을 수 있으나, 민감한 정보를 다루거나 외부에 노출되는 운영 환경에서는 매우 위험할 수 있습니다. Require TLS (TLS 필수) : 이 옵션은 TLS 연결만을 요구하며, TLS를 지원하지 않는 서버와는 연결을 시도하지 않습니다. 보안이 중요한 데이터를 다루거나, 개인 정보 보호 규정을 준수해야 하는 운영 환경에서 권장됩니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
결론적으로 JWT토큰도 서버측 페이지(예, index.php)에 하드코딩해서 클라인언트 앱으로 전송할 수 있네요... 문제의 핵심은 제가 임시로 구축한 서버(아파치 웹서버)로 요청하는 주소 끝에 정확한 페이지 주소를 붙이든(예,http://제 도메인 주소/auth/token/index.php) 아니면 http://제 도메인 주소/auth/token/와 같은식으로 끝에 "/"는 꼭 붙여야지 응답을 받을 수 있는데, 제가 강의를 따라서 그대로 요청하는 주소를 아래와 같이 끝에 "/"를 붙이지 않고 Dio 요청을 했기 때문에 생기는 문제였습니다. http://제 도메인 주소/auth/token http://제 도메인 주소/auth/login 여전히 POSTMAN으로 요청을 테스트해보면, POSTMAN에서는 요청하는 주소 끝에 "/"붙이지 않더라도 정상적으로 응답을 받을 수 있는데, 왜 Dio로 요청했을 때는 응답을 받을 수가 없는지는 알수가 없지만 혹시라도 저하고 똑같은 문제를 겪으시는 분이 계실까봐 글남깁니다...^^;; ................................ 이하 기존 작성했 던 글....................... 안녕하세요? 너무 초보적인 질문같아서 좀 창피하기도 한데, 다름이 아니고, 중급강의 최종 소스를 바탕으로 제가 예전에 만들어 보고 싶었던 앱을 만들려고 하고 있습니다. 백엔드는 예전에 PHP를 좀 다뤄본적이 있어서 일단은, 그래도 친숙한 PHP로 백엔드를 만들어볼려고 하는데,로그인 단계부터 잘 진행이 안되네요..ㅠㅠ 강사님 강의 덕분에 JWT 및 토큰 관리 개념을 배워서 이걸 나중에 PHP로 구현해볼려고는 하고 있기는 한데, 우선 flutter로 앱 만드는 것에 집중하고 싶어서, 일단은 앱에서 로그인 요청을 하면 서버측 페이지에 "하드코딩"한 JWT 토큰 정보를 사용자측 앱으로 전달되게해서 로그인을 할 수 있게 하고 싶은데, 아무리 해도 로그인이 안되네요. 제가 임시로 구축한 사이트에 강의에 맞춰서 아래 경로를 맞췄고 http://제 도메인 주소/auth/login 이 페이지를 호출하면 POSTMAN에서 로그인 후 응답받았던 아래 토큰을 복사해서 페이지에 담은 후 클라이언트 앱으로 전달되게 했는데 아무리 해도 로그인이 안되고 에러가 뜹니다. { "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3RAY29kZWZhY3RvcnkuYWkiLCJzdWIiOiJmNTViMzJkMi00ZDY4LTRjMWUtYTNjYS1kYTlkN2QwZDkyZTUiLCJ0eXBlIjoicmVmcmVzaCIsImlhdCI6MTcwNjI1ODYwMCwiZXhwIjoxNzA2MzQ1MDAwfQ.dvMz8WgEk-28q3F2J4E5CLLUURO1w8S7MlgqGje5ils", "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3RAY29kZWZhY3RvcnkuYWkiLCJzdWIiOiJmNTViMzJkMi00ZDY4LTRjMWUtYTNjYS1kYTlkN2QwZDkyZTUiLCJ0eXBlIjoiYWNjZXNzIiwiaWF0IjoxNzA2MjU4NjAwLCJleHAiOjE3MDYyNTg5MDB9.lnCJ7Okwvk1xh2WNz8n4oXbHWczy1H72sVb4znOXWUs" } 제 짧은 소견으로는 어찌되었건 클라이언트앱으로 토큰 정보가 전송되면 로그인이 진행되어야 할 텐데 안되는 이유가 무엇인지 모르겠습니다... ........................ ....................... 위의 질문을 쓰고, 몇가지 더 테스트를 해본 결과를 종합하면, Dio에서 JWT형식으로 된 토큰(하드코딩한 토큰)이 담긴 응답은 내부적으로 어떤 검증 절차를 거쳐서 오류를 일으키는 것 같습니다. 오류는 다음과 같은 오류가 뜨는데, 다른 페이지는 아래와 같은 오류가 뜨지 않고 제대로 정보를 수신합니다. I/flutter (22276): Dio 에러 상세정보: I/flutter (22276): 타입: DioErrorType.response I/flutter (22276): 메시지: Http status error [301] I/flutter (22276): 에러: Http status error [301] I/flutter (22276): 응답: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> I/flutter (22276): <html><head> I/flutter (22276): <title>301 Moved Permanently</title> I/flutter (22276): </head><body> I/flutter (22276): <h1>Moved Permanently</h1> I/flutter (22276): <p>The document has moved <a href="http://제 도메인 주소/auth/token/">here</a>.</p> I/flutter (22276): </body></html> 결론적으로 하드코딩된 JWT 토큰 은 Dio 패키지를 통해서 정상적으로 응답을 수신할 수 없으며, JWT 토큰을 제대로 서버측에서 수신하려면 서버측에 JWT 토큰을 제대로 인증하고 발급할 수 있게 구축을 해야한다로 귀결되는 것 같습니다. 이러한 결론이 맞을까요? 이 /auth/login/auth/login
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의 자료에서는 순수 객체 상태를 고려해서 항상 양쪽에 값을 설정하자고 말씀하셨습니다. 그래서 저는 "member1의 객체의 필드 중 team을 TeamA로 값을 설정해줘야 하고, TeamA 객체의 필드 중 member에도 member1으로 값을 설정해줘야 한다"라고 이해를 했습니다. 하지만, 강의를 진행하시면서 위와 같이 코드를 작성하시면서 "둘 중에 한 곳에서만 값을 설정하면 된다"라고 말씀하셨는데 이 부분이 잘 이해가 안됩니다. member 클래스에도 team 필드가 존재하고, team 클래스에도 member 필드가 존재하는데 둘 중 한곳에서만 값을 설정하면 왜 가능한건가요?? 그리고 위에서 작성하신 addMember 메소드 안의 this가 가르키는게 자기 자신의 클래스(team)를 의미하는게 맞나요? 설명 부탁드립니다 !
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 해당 코드에서 list members에 아무런 값이 들어가지 않는 이유가 영속성 컨택스트에만 값이 들어가 있고 DB에는 아직 값이 들어가 있지 않는 상태이기 때문인가요? 이 부분이 잘 이해가 안되네요 설명 부탁드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] override오류로 test 작동이 안됩니다ㅠ
java 코드 public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); //code EntityTransaction tx = em.getTransaction(); tx.begin(); Member member = new Member(); member.setId(1L); member.setName("mini"); em.persist(member); // member를 저장 tx.commit(); em.close(); emf.close(); } } 로그 1월 26, 2024 4:43:27 오후 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation INFO: HHH000204: Processing PersistenceUnitInfo [name: hello] 1월 26, 2024 4:43:28 오후 org.hibernate.Version logVersion INFO: HHH000412: Hibernate ORM core version 6.4.2.Final 1월 26, 2024 4:43:28 오후 org.hibernate.cache.internal.RegionFactoryInitiator initiateService INFO: HHH000026: Second-level cache disabled 1월 26, 2024 4:43:28 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH10001002: Using built-in connection pool (not intended for production use) 1월 26, 2024 4:43:28 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001005: Loaded JDBC driver class: org.h2.Driver 1월 26, 2024 4:43:28 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001012: Connecting with JDBC URL [jdbc:h2::tcp://localhost/~/jpa-exercise] 1월 26, 2024 4:43:28 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001001: Connection properties: {password=****, user=sa} 1월 26, 2024 4:43:28 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001003: Autocommit mode: false 1월 26, 2024 4:43:28 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init> INFO: HHH10001115: Connection pool size: 20 (min=1) 1월 26, 2024 4:43:28 오후 org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl constructDialect WARN: HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default) 1월 26, 2024 4:43:28 오후 org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateService INFO: HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) 1월 26, 2024 4:43:28 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@7f7b6639] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. 1월 26, 2024 4:43:28 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@2abbd0d9] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. Hibernate: drop table if exists Member cascade Hibernate: create table Member ( id bigint not null, name varchar(255), primary key (id) ) Hibernate: /* insert for hellojpa.Member */insert into Member (name, id) values (?, ?) 1월 26, 2024 4:43:28 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PoolState stop INFO: HHH10001008: Cleaning up connection pool [jdbc:h2::tcp://localhost/~/jpa-exercise] Process finished with exit code 0 insert 로그도 찍히는데 왜 안들어갈까요...?
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안녕하세요! 강의 + API 공식문서 보면서 따라하는중입니다. 혹시 많은 API중 혹시 아고라 API를 선택하신 이유가 궁금합니다. 비슷한 videoSDK나, ZOOM도 API를 제공하는걸 확인했는데 많은 개발자분들이 agora를 사용하시고 계셔서 큰 이유가 있으신지 궁금합니다. 덕분에 공식문서도 같이 공부하고 있어요~