서론 class Node: def __init__(self, value=0, next = None): self.value = value self.next = next first = Node(1) second = Node(2) third = Node(3) first.next = second second.next = third first.value = 6 위 코드는 연결리스트-1 강의에 등장하는 코드입니다. first = Node(1) first.next = second first.value = 6 위 3개의 코드 모두 "=" 이라는 할당 연산자를 통해서 데이터를 변수에 저장 하고 있는데요. "first가 Node(1)을 가리킨다" "first.next에는 주소가 저장된다." "first.value에는 6이 저장된다." 뭔가 여기서 저는 뇌에서 뭔가 이상한데(?)라고 느겼습니다. first, first.next , first.value 라는 변수에 모두 "="이라는 동일한 할당 연산자를 사용 함에도 불구하고, "가리킨다" "값을 저장한다" "주소를 저장한다" 파이썬이 천재인가? 동일한 할당("=")연산자인데, 어쩔 때는 알아서 가리키고 , 어쩔 때는 알아서 주소을 저장 하고, 또 어쩔 때는 값를 저장 한다 질문1 위 그림을 토대로 말씀드리자면, 1."가리킨다" → D관점 2."값을 저장한다" → C관점 3."주소를 저장한다" → A관점 결국엔 다 " 동일한 의미" 를 다르게 표현하고 있다는 사실입니다. first= Node(1) 실제로는 first에 Node(1)의 번지인 100번지(가정)가 저장되어 100번지에 저장되어 있는 Node(1)객체를 가리키는 것 이고, second=Node(2) 실제로는 second에 Node(2)의 번지인 200번지(가정)가 저장되어 200번지가 저장되어 있는 Node(2)객체를 가리키는 것 이고, first.next = second second에 저장되어 있는 200번지 즉 주소를 first.next에 저장 해서 결국엔 first.next가 Node(2)를 가리키게 되는 것이고, first.value에 600번지(가정)가 저장되어 6을 가리키고 있으나 C관점에서 "first.value에는 6이 저장"되어 있다 라고 표현하고 있는 것 같습니다. 제가 이해한 게 맞나요?? 결국 다 동일한 의미인 거죠? <질문의도> 분명히 저와 같은 생각하시는 분이 계실 것으로 생각됩니다. 저도 연결 리스트 처음 배울 때 파이썬이 천재인가 어쩔 때는 "값"을 저장하고, 어쩔 때는 "가리킨다"라고 표현하고, 어쩔 때는 "주소"를 저장한다라고 표현하고, 이 내용이 다른 분들한테 조금이라도 도움이 됐으면 좋겠습니다.
04-03 매출액의 종류 문제를 풀던 중, System.out.print() 로 출력하면 정답 처리가 되던 부분이 System.out.printf()로 출력 할 경우 time exceed 처리가 됩니다. System.out.printf()의 문제인지 궁금합니다.. 아래는 타임아웃된 소스코드인데, 강의자료에서 출력문만 변경 한 것입니다. ======================================================== import java.util.*; class Main { public ArrayList<Integer> solution(int n, int k, int[] arr){ ArrayList<Integer> answer = new ArrayList<>(); HashMap<Integer, Integer> HM = new HashMap<>(); for(int i=0; i<k-1; i++){ HM.put(arr[i], HM.getOrDefault(arr[i], 0)+1); } int lt=0; for(int rt=k-1; rt<n; rt++){ HM.put(arr[rt], HM.getOrDefault(arr[rt], 0)+1); answer.add(HM.size()); HM.put(arr[lt], HM.get(arr[lt])-1); if(HM.get(arr[lt])==0) HM.remove(arr[lt]); lt++; } return answer; } public static void main(String[] args){ Main T = new Main(); Scanner kb = new Scanner( System.in ); int n=kb.nextInt(); int k=kb.nextInt(); int[] arr=new int[n]; for(int i=0; i<n; i++){ arr[i]=kb.nextInt(); } for(int x : T.solution(n, k, arr)) System.out.printf("%d", x); } }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] Joincolumn의 name속성은 그저 member테이블의 조인컬럼의 컬럼명을 지정하는것뿐 team과 매핑하는것과는 관련이없다. member와 team을 연관관계맺는것은 referencedColumnName속성이 하지만 이것을 생략하면 자동으로 team의 pk값으로 연관관계를 맺어줘서 생략한다. 이게 맞을까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 강의 정말 잘 보고 있습니다. 그런데 스프링 인터셉터 - 인증 체크 강의 하실 때 public class LoginCheckInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String requestURI = request.getRequestURI(); log.info("인증 체크 인터셉터 실행 {}", requestURI); HttpSession session = request.getSession(false); if (session == null || session.getAttribute(SessionConst.LOGIN_MEMBER) == null) { log.info("미인증 사용자 요청"); //로그인으로 redirect response.sendRedirect("/login?redirectURL=" + requestURI); return false; } return true; } 코드를 위에서처럼 작성하시는데, 여기서 제가 궁금한 점은 response.sendRedirect("/login?redirectURL="+requestURI) 이 부분인데, 이 때 sendRedirect함수를 호출 했다고 해서 바로 rediredt 요청을 하는건가요? 아니면 제가 생각했을 때는 자료를 참고해보면 인터셉터에서 제한이 걸려서 WAS까지 다시 올라 간 다음에 그때 서야 서버 내부에서 redirect를 하는 건가요? 질문을 정리하면 sendRedirect를 호출할 때 서버에서 이뤄지는 과정이 어떻게 되는 건지,,, 궁금합니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요. 강의 잘보고 있습니다. 한가지 궁금한 것이 있어 문의드립니다. 아직 자바 문법을 1차 마무리한 초보자인데요. 괜히 자바 문법 관련 내용을 여쭤보는건가 싶어 죄송하네요. 문의사항은 아래에 있는 내용입니다. 위 내용에서 CalculatorAddRequest request 가, 어떠한 과정으로 int number1, number 2 에 할당되는지 알 수 있을까요? 만약 너무 범위가 넓다고 생각되어서 답변하기 어려우시면 관련 하여 자바 목차로 말씀해주시면 제가 한 번 학습하고 다시 여쭤보겠습니다. 🙏
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안녕하세요. WebView 실행 시 시뮬레이터가 빈화면으로만 나옵니다. 그래서 블로그 말고 m.naver.com으로 하면 네이버 화면은 나오는데, 블로그만 뜨질 않습니다. 구글링을 해서 플러그인도 써보았지만 안되서 방안을 요청드립니다. 해결방안이 있을까요? 원격지원도 가능하실까요?
선생님 안녕하세요 응급실 문제를 제가 처음 푼 방식대로 채점을 받아 보았는데, 문제에 있는 예시 문제는 제대로 통과가 되었는데요. 채점 사이트 내에 있는 예시는 오답이 나와 질문 드립니다. 같은 위험도를 가진 수가 나오는 경우) idx가 작거나 같으면 answer++; 하는 방식으로 문제를 구현하였습니다. public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int M = 0; Queue queue = new LinkedList(); for (int i=0; i<n; i++){ int a = sc.nextInt(); queue.offer(a); if(i == m){ M = a; } } System.out.println(solution(n,m,M,queue)); } private static int solution(int n, int m, int M, Queue queue) { int answer =0; for (int i=0; i < n; i++){ int que = (int)queue.poll(); if(que > M){ answer++; } else if(que == M && i <= m){ answer++; } } return answer; } }