import sys from collections import deque sys.stdin = open("input.txt", 'r') dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] n = int(input()) board = [list(map(int, input().split())) for _ in range(n)] res = 0 dq = deque() for h in range(100): ch = [[0]*n for _ in range(n)] cnt = 0 for i in range(n): for j in range(n): if board[i][j] > h: dq.append((i, j)) ch[i][j] = 1 while dq: tmp = dq.popleft() for k in range(4): x = tmp[0]+dx[k] y = tmp[1]+dy[k] if 0 <= x < n and 0 <= y < n and ch[x][y] == 0 and board[x][y] > h: ch[x][y] = 1 dq.append((x, y)) cnt += 1 res = max(res, cnt) if cnt == 0: break print(res)
안녕하세요 리트코드 문제를 풀면서 처음에 LEFT조인을 무의식적으로 서브쿼리로 다중 행을 이용해 문제를 풀었습니다. 근데 푸는 와중에 런타임속도에 있어서 갑자기 궁금증이 생겨 질문을 남기게 됐습니다. 제가 (단순하게)생각했을 때는 서브쿼리를 쓰게되면 메인쿼리와 함께 조회를 두 번 도는거라 더 느릴 것 같은데 LEFT조인만 썼을때보다 속도가 빠르게 나와서 두 쿼리의 차이가 있는건지? 아니면 리트코드 컴파일상 그런건지? 왜 이런 결과가 나왔는지 궁금합니다!!! 문득 시험 뿐만 아니라, 실제 현업에 갔을때도 성능을 고려하여 코딩을 하는데 목적을 두고 공부를 하다보니. 갑자기 생각나서 질문 드립니다. 아 저는 MySql이 아닌 Oracle로 공부하고 있습니다. 기존 풀이 LEFT JOIN SELECT c.name "Customers" FROM Customers c, Orders o WHERE c.id = o.customerId(+) AND o.customerId IS NULL; 서브쿼리를 통한 INNER JOIN SELECT name "Customers" FROM Customers WHERE id NOT IN (SELECT c.id FROM Customers c, Orders o WHERE c.id = o.customerId); 두 개의 결과
따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
안녕하세요, data 폴더 안에 파일들이 생기지 않아 질문 드립니다. 강의와 같이 docker-compose.yml 파일에 코드 postgressql 오타난거 postgresql로 제대로 수정하고, 에디터 껐다 킨 다음에 docker-compose up 명령어 실행해봤는데도 data에 폴더들이 생성이 안됩니다. 생성이 안되서 빈 data 폴더를 아예 지우고 docker-compose.yml 파일도 다시 지웠다가 재작성 했는데도 생기질 않습니다. 제가 백엔드가 처음이라 어떻게 해야 할 지 모르겠습니다.. 제가 놓치고 있는 부분이 있는걸까요?
안녕하세요? 좋은 강의를 해주셔서 감사합니다 :) 한가지 문의 드릴게 있는데 11분 9초에 나왔던 console.log("area1 : ", area1); 와 console.log("area1 : " + area1); 의 차이가 혹시 있는지 궁금합니다. console에서 보면 색깔과 뛰어쓰기 크기? 차이가 있더라구요..
안녕하세요! 영상 보며 따라만들고있는데, 스페이싱 함수값을 적용하면 강의 영상 안에서는 8, 16, 20, 24 이런식으로 하단 값이 숫자로 나오는데 저는 함수값으로 나와서 너무 헷갈립니다...ㅠㅠㅠㅠ 왜이러는걸까요ㅠㅠ? 헷갈려서 삭제하고 다시 해봐도 함수로 나와서 눈이 어지러워요 저만.... 이런건가요??
안녕하세요 비전공자 학생으로서 정말 감사한 마음으로 강의 듣고 있습니다! 1) Vector3.forward 앞에 new 를 붙이면 해당 라인에서 밑줄이 그어지는 이유가 무엇일까요? 2) 1번에 경우 [new]를 잘 못 붙인것이라 어렴풋이 에러내용이 짐작가는데요, 어째서 [_speed]에까지 에러 메시지를 띄우는 것일까요? 제가 스스로 코드를 쳐보던 와중에 뒤에 알려주신 [코드개선] 부분에 new 연산자를 지우지 않고 그대로 쓴 실수를 했습니다. (처음에는 4줄 다 new를 붙여서 작성했어요) 여기저기 구글링하고 공식 api까지 찾아다니가다 엉뚱한 곳에서 오류가 난걸 발견했는데요, 문득 메시지로 여러가지를 띄워주어 궁금해져 질문드립니다
안녕하세요, 김영한님 @Query에서 Dto로 매핑해주는 과정에서 궁금한 점이 있습니다. MemberDto에 정적 팩토리 메서드를 만들어서 Member를 파라미터로 받으니 new MemberDto() 부분이 없이도 생성이 되는 것으로 보여지는데 이 과정이 이해가 되지 않습니다. @Query("SELECT c " + "FROM Coupon c " + "JOIN FETCH c.receiver " + "WHERE c.receiver = :member AND c.couponState.couponStatus = :status " + "ORDER BY c.couponState.meetingDate DESC") List<CouponResponse> findAllByReceiver(@Param("member") Member member, @Param("status") CouponStatus couponStatus){} public static CouponResponse of(Coupon coupon) { Member sender = coupon.getSender(); Member receiver = coupon.getReceiver(); return new CouponResponse( coupon.getId(), new CouponMemberResponse(sender.getId(), sender.getNickname(), sender.getImageUrl()), new CouponMemberResponse(receiver.getId(), receiver.getNickname(), receiver.getImageUrl()), coupon.getCouponTag(), coupon.getCouponMessage(), coupon.getCouponType().getDisplayName(), coupon.getCouponState().getCouponStatus().name(), coupon.getCouponState().getMeetingDate(), coupon.getCreatedTime()); } 어떻게 정적 팩터리 메서드를 통해 생성될 수 있는 건가요?
안녕하세요. 먼저 알차고 좋은 강의 만들어 주셔서 감사하단 말씀을 드리고 싶습니다 ㅎㅎ 강의를 보다보니 서비스 로직에서 saveAndFlush 를 해주고 있는데 @Transactional 어노테이션이 있어서 디비에 반영이 잘 될거 같은데 saveAndFlush 를 해주는 이유가 따로 있을까요? 그리고 저는 보통 save 를 사용했는데 saveAndFlush 를 사용하는 다른 특별한 이유가 있는지 궁금합니다.
https://www.inflearn.com/questions/644825 제가 예전에 올린 글입니다. 질문한 글에 댓글을 또 달았었는데 도저히 해결을 할 수 가 없어서 다시 질문올립니다. 제가 윈도우 환경에서 카프카 토픽을 삭제 했는데 그 뒤로 답글로 제시해주신 해결책을 해보려고 해도 해볼 수가 없었습니다.. 즉, C:\Temp 디렉토리 하위에 zookeeper, kafka 폴더가 전혀없고 저의 C:\Temp 아래는 폴더 구조는 다음과 같습니다.. 2020(폴더) HncDownload(폴더) Service.log AUtempR(폴더 - 안에 아무것도 없음) 그리고 기존 에 사용하고 있던 Kafka환경 폴더(강의에서 제공해주신 폴더)를 삭제하고 다시 압축을 풀어서 압축을 푼 경로에 zookeeper와 kafka를 실행해도 zookeeper는 실행되고 kafka는 실행되지 않습니다... 즉, 동일한 에러가 발생하네요.. 대체 어떤 걸 지워야지 다시 kafka서버가 정상 실행될까요? 참고로 자료 올려주신 윈도우용 카프카 파일 전부 삭제하고 다시 압축 풀고 설정해도 토픽목록은 동일한 에러로 안보이고, 카프카 역시 동일한 에러로 켜지지 않습니다.. 감사합니다.
안녕하세요 강의를 듣다가 궁금증이 카프카 토픽을 안쓰고 저장하면 대용량 처리에서 불리한 이유가 있나 싶어 궁금해 졌습니다. 우선 인터넷에서 검색해서 찾아본 봐로는 그러면 카프카 사용하면 대용량 처리에 유리한 이유가 병렬처리에 의한 데이터 처리율 향상 : 카프카는 아래 보실 아키텍처에 보면 데이터를 병렬로 처리함으로서 데이터를 빠르고 효과적으로 처리할 수 있습니다. disk에 순차적으로 데이터를 적재하기 때문에 임의 접근(random access) 방식보다 훨씬 더 빠르게 데이터를 처리합니다. 데이터 유실 방지 : disk에 적재되기 때문에 만약 불의의 사고로 서버가 다운되었을 시에도 데이터가 유실되는 일 없이 재시작하여 기존 데이터를 안정적으로 처리 가능합니다. 클러스터링에 의한 고가용성 서비스 : Scale-out이 가능하여 시스템 확장이 용이하며 어떤 하나 혹은 몇 개의 서버가 다운되도 서비스 자체가 중단될 일 없이 시스템이 운용가능합니다. 출처 : https://engkimbs.tistory.com/691 정도로 보이는데요 그렇다면 토픽을 사용하는 경우와 카프카 커넥트를 사용하는 경우가 있었는데 (프로듀서, 컨슈머를 파이프라인을 매번 구성하기 힘들어서 사용하는 것으로 알고 있습니다.) 그러면 우선 첫번째 질문 은 토픽을 사용할 때와 카프카 커넥트를 사용할 때 모두 카프카가 알아서 병령처리를 해주고 데이터 유실 방지를 해주는 건가요?? 또한 두번째 질문 은 강의에서 order-service를 여러 개 띄우고 주문 요청을 여러 번 하면 여러 개의 order-service의 db에 나눠서 저장을 하는 식으로 했는데요 현업에서 MSA환경에서 프로젝트할 때도 예를들면 order-service, user-service, catalog-service 각각 db를 하나씩 사용하는게 일반적인 방법인가요? 즉, 각 서비스마다 db를 하나씩 두는 것이 일반적인 방법인가요? 세번째 질문 은 강의에서 order-service를 여러개 띄우고 하나의 db에 저장하는 방식을 사용했는데 즉, Kafka Topic에 설정된 Kafka Sink Connect를 사용해 단일 DB 에 저장 했서 데이터를 동기화 했는데. 그러면 카프카 커넥트를 사용하지 않고는 여러개의 order-service를 단일 db에 저장할 수 없나요?
GraphQL 완전정복 (키오스크를 만들며 배우는 풀스택 과정) - [2024 부분 리뉴얼]
안녕하세요! 다른 쿼리문은 잘 출력되는데 comments만 계속 null이 뜹니다. query { comments { text userId } } 위 쿼리문에서 { "data": { "comments": null } } 널값이 출력됩니다. 다른 쿼리문은 수업 내용과 같이 출력되고, mutation까지 잘 진행됐는데 코멘트만 null이 떠서 질문 남깁니다. 제가 무슨 실수를 한걸까요?ㅠㅠ