문제 문제를 읽고 생각난 건 두 가지였다. 그래프 DFS 그래서 dfs를 구현하고, 전체 정점에 대해서 dfs를 수행했다가 시간 초과로 틀렸다. 입력 vertex의 범위가 2개에서 10만 개였기 때문에, 시간 초과는 당연했다. 한 50분 고민하고, 밥 먹으면서도 고민해도 딱히 좋은 방법이 떠오르지 않아 '질문 검색' 탭에서 글을 보다가 이 글을 보고 해결했다. 처음에는 마지막 댓글을 보고도 갸우뚱 했는데, 조금 생각해보니 이해할 수 있었다. 1에서 X까지의 거리가 1에서 갈 수 있는 최대 거리 max_distance 라고 하자. 그렇다면 X에서 출발하면 1을 거쳐 다른 곳으로 또 이동이 가능하기 때문에 이는 max_distance 보다 크다. 라고 이해했다. 코드 #include #include std:..
컴포넌트 스캔과 자동 의존 관계 설정 DI(Dependency Injection) 의존성 주입, 객체 의존 관계를 외부에서 넣어주는 것 필드 주입, setter주입, 생성자 주입 3가지 방법이 있음 생성자에 @Autowired 가 있으면 객체 생성 시점에 스프링 컨테이너에서 해당 스프링 빈(빈으로 등록되어 있어야 함)을 찾아서 넣어준다. 생성자가 1개만 있으면 생략 가능 스프링 빈 등록 방법 2가지 컴포넌트 스캔 @Component 어노테이션이 있으면 스프링 빈으로 자동 등록 annotation-based configuration, classpath scanning 사용 시 auto-detect 대상이 됨 @Component를 포함하는 아래 어노테이션도 가능 @Controller - 어노테이션이 붙은 클..
'Computer Systems: A Programmer's Perspective 3rd (Randal E. Bryant)'를 주교재로 한 시스템 소프트웨어 강의 수업자료를 복습하며 정리한 것 Processor State Location of runtime stack (%rsp) Current stack top Location of current code control point (%rip) Instruction pointer Condition Codes Single bit registers CF(Carry Flag, for unsigned) SF(Sign Flag, for signed) ZF(Zero Flag) OF(Overflow Flag, for signed) 산술연산에 의해 암묵적으로 설정(e.g..