묻고 답해요
129만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
DFS로는 맞춰서 BFS로 풀어보았습니다!
BFS로 풀었을 때 답은 맞는데 제출하면 메모리 초과로 틀렸다고 나오는데,혹시 이 코드에서 메모리를 줄여서 맞힐 수 있는 방법이 있는지 여쭤보고 싶습니다!#include<bits/stdc++.h> using namespace std; int N; const int dy[4] = {-1,0,1,0}; const int dx[4] = {0,1,0,-1}; const int max_n = 100; int arr[max_n][max_n]; int visited[max_n][max_n]; int x,y; int Max = 0; int main(){ cin >> N; fill(&arr[0][0], &arr[0][0] + max_n*max_n, 0); for(int i = 0; i < N; i++){ for(int j = 0; j < N; j++){ cin >> arr[i][j]; } } for(int h = 1; h <= 100; h++){ int cnt = 0; fill(&visited[0][0], &visited[0][0] + max_n*max_n, 0); for(int i = 0; i < N; i++){ for(int j = 0; j < N; j++){ if(arr[i][j] >= h && visited[i][j] == 0){ queue<pair<int,int>> q; q.push({i,j}); cnt++; while(q.size()){ tie(y,x) = q.front(); q.pop(); visited[y][x] = 1; for(int n = 0; n < 4; n++){ int ny = y + dy[n]; int nx = x + dx[n]; if(ny < 0 || ny >= N || ny < 0 || ny >= N){ continue; } if(arr[ny][nx] < h){ continue; } if(visited[ny][nx]){ continue; } q.push({ny,nx}); } } } } } Max = max(Max, cnt); } cout << Max; return 0; }
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
pandas 오류?
scikitlearn 다운그레이드가 안돼서 커뮤니티에 다른 질문들 보며 new_base 가상환경을 구성하고 가상환경 activate 한후 pandas 포함해서 필요한 패키지들 설치 했습니다.가상환경 활성화된 상태에서 pip install jupyter notebook 으로 주피터 노트북 설치한 후에 jupyter notebook 커맨드로 실행시켰습니다. 그리고 새로운 notebook 열어서 사진철머 실행시켰는데 빨간 박스가 뜨면서 경고 문구가 나오네요. 어떻게 해결하면 좋을까요?
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
eslint 질문 있습니다.
eslint 저장을 하고 강의처럼 props에 값을 주면 똑같은 메세지가 안나옵니다. jsx로 파일 설정을 안해서 그럴까요?
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?
안녕하세요 진석님! 좋은 강의 잘 보고 있는 한 학생입니다!오늘 강의를 보다가 궁금한 점이 생겨서 질문을 남겨봅니다. jupyter로 코드 실습 하시다가 언급하시는 부분(9분 57초) 에서get_uer_model() 메서드를 활용하기를 권장하셨습니다. 혹시 이 부분에 대한 이유를 알 수 있을까요?이전까지 Model 을 작성하실 때에는 settings.AUTH_USER_MODEL을 사용하라고 하셨는데 어째서 해당 부분을 import 하지 않고 get_user_model()을 써야 하는지 이해가 되지 않아서 질문 드렸습니다!이미 settings.AUTH_USER_MODEL 을 settings.py에서 변수에 할당한 상태라고 가정한다면, settings.AUTH_USER_MODEL 을 바로 import 하는게 메모리를 더 효율적으로 사용할 수 있는 방법이 아닌건가 하는 의문점이 있는 상태에서 질문 드린 점 참고 부탁드리겠습니다. (__ __ ) 요약하자면 이렇습니다.Q1. 9:57에서 언급하신 권장방법은 어째서 settings.AUTH_USER_MODEL을 import 하지 않고 get_user_model() 을 사용해야 하는가?Q2. settings.AUTH_USER_MODEL은 Model 이 아닌것인가?Q3. settings.AUTH_USER_MODEL을 import 해서 user.profile한 경우와 get_user_model() 을 import 하여 user.profile을 한 경우의 차이점은 무엇인가? 장고 강의에 항상 애정을 쏟아주셔서 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
http://localhost:8080/hello 오류가 뜹니다ㅜ
java: interface abstract methods cannot have body오류 메세지가 뜨는데 어떻게 해결을 하면 좋을끼요??
-
미해결홍정모의 따라하며 배우는 C++
#include<algorithm>없이 std:max()사용 가능
강의 5:20에서 보면std::max()는 <algorithm>이라는 라이브러리 안에 저장되어 있어서 #include로 불러와야 사용이 가능하다고 하셨습니다.#include <iostream> using namespace std; int main() { cout << std::max(100,2) << endl; return 0; }근데 왜 저는 <algorithm>을 불러오지 않아도 오류 없이 사용이 가능할까요? 궁금하네요... 감사합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
시간 초과
import java.util.*; class Main{ public int[] solution(int N, List<Integer> A, int M, List<Integer> B) { ArrayList<Integer> answer = new ArrayList<>(); Collections.sort(A); Collections.sort(B); for(int key : B) { if(A.contains(key)) { answer.add(key); } } return answer.stream() .mapToInt(Integer::intValue) .toArray(); } public static void main(String args[]) { Main T = new Main(); Scanner sc = new Scanner(System.in); int N = sc.nextInt(); List<Integer> A = new ArrayList<>(); for(int i = 0; i < N; i++) { A.add(sc.nextInt()); } int M = sc.nextInt(); List<Integer> B = new ArrayList<>(); for(int i = 0; i< M; i++) { B.add(sc.nextInt()); } for(int answer : T.solution(N, A, M, B)) { System.out.print(answer + " "); } } }안녕하세요. 이와 같이 코드를 짰는데, 케이스 4에서 시간초과가 나왔습니다. 이에 대해 저는 다음과 같은 가설을 세워봤습니다.Collections 클래스의 sort를 하는 시간이 Arrays 클래스의 sort 시간 보다 오래 걸린다.입력되는 배열을 ArrayList로 한 것이 배열보다 더 메모리를 많이 사용하므로 시간이 더 오래 걸린다.아직 자료구조에 대한 이해와 시간 복잡도에 대해서 기본이 부족한 것 같습니다..! 감사합니다.
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
npm create react app
안녕하세요 강사님 제목처럼 react app 만들어도 될까요?큰 차이가 있나요?
-
미해결홍정모의 따라하며 배우는 C++
namespace의 활용
namespace의 사용이유는std::cout, std::cin, std::in처럼 함수를 목적에 따라 분류하기 위해서 사용하는 건가요? 함수만 namespace에 저장할 수 있는 지 궁금해져서 #include <iostream> using namespace std; namespace Space1 { int a = 10; } int main() { cout << Space1::a << endl; return 0; }이렇게 입력했더니 정수형 변수 a도 namespace에 저장할 수 있었습니다.함수 이외에도 namespace를 사용하는 경우가 있을까요?? 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
FixDiscountPolicy의 discount()의 매개변수로 price를 넣는 이유
@Override public int discount(Member member, int price) { // int price 는 왜 넣지 ? if (member.getGrade() == Grade.VIP) { return discountFixAmount; } else { return 0; } }이 메서드에서, discount의 매개변수로 member와, price를 넣고 있습니다. member 객체는 Grade의 값이 VIP인지 알아내야 하므로 넣는것을 이해하고 있습니다.그런데 price는, 메서드 내에서 사용하지 않고 있는데 왜 price 값을 매개변수로 넣고 있나요 ? 확장 가능성 때문이라고 봐야할까요 ?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
다대일 양방향 연관관계를 사용할 경우 질문이 있습니다.
## 다대일 양방향 연관관계를 사용할 경우 질문이 있습니다 아래와 같이 Reply 엔티티를 생성할 때 Board엔티티의 List<Reply> replies에 추가를 해주어야 하기 떄문에, 엔티티 생성시 필요한 엔티티에 대한 select문은 getReferenceById를 사용해서 없앨 수 있었고 Reply엔티티 생성도 할 수 있었다. ````agsl @Transactional public Reply addReply(Long memberId, Long boardId, String content) { Member member = memberRepository.getReferenceById(memberId); //엔티티 생성에 불필요한 select문 없다. Board board = boardRepository.getReferenceById(boardId); System.out.println("==================="); Reply reply = Reply.createReply(member, board, content); System.out.println("==================="); return replyRepository.save(reply); } ```` 다만 다대일 양방향 연관관계의 경우 댓글을 저장할 때마다, Board에 대한 Select쿼리가 발생한다. ````agsl public static Reply createReply(Member member, Board board, String content) { Reply reply = new Reply(); reply.member = member; reply.board = board; reply.content = content; reply.likeCount = 0; reply.isDeleted = false; log.info("board select 발생 넣기 --"); board.addReply(reply); log.info("board select 발생 넣기 --"); return reply; } ```` 이렇게 댓글을 저장할 때 마다 board에 대한 select쿼리가 발생하다 보니 다대일 양방향 관계를 하지 말아야 하는 생각이 드는데요.. 지금 프로젝트에서는 양방향 연관관계의 장점은 영속성 전이와 orphanremoval을 사용헤서 게시글 삭제시 댓글이 모두 삭제되는 이점을 얻는다는 것이 있습니다. 물론 board삭제할 경우 replyrepository에서 boardId를 통한 댓글 삭제가 가능할 것으로 생각 되는데요. 댓글을 작성할 때마다 Board select쿼리가 나가는 것은 성능상의 이슈로 봐야 할까요?? -> 다대일 단방향 연관관계로 바꾸는게 맞을까요? 아니면 양방향 연관관계의 경우 JPA를 사용하지 않을시 객체지향적 코드를 보장한다는 이야기를 들었는데 Board조회시 조인하여 Reply 컬렉션을 조회할 수 있다는 것이 장점으로 느껴지긴 합니다 (단방향 연관관계일 경우 reply 컬렉션 조회 메서드를 따로 작성해서 해결해야 함.) 어떤 선택을 해야할 지 질문드립니다!! 어떤 선택을 해야 할까요? 아래는 발생 쿼리 로그입니다. ```agsl =================== 2024-02-03T14:15:00.936+09:00 INFO 2612 --- [ Test worker] cos.blog.web.model.entity.Reply : board select 발생 넣기 -- 2024-02-03T14:15:00.937+09:00 DEBUG 2612 --- [ Test worker] org.hibernate.SQL : select b1_0.board_id, b1_0.content, b1_0.created_time, b1_0.last_modified_time, b1_0.member_id, b1_0.title from board b1_0 where b1_0.board_id=? 2024-02-03T14:15:00.938+09:00 INFO 2612 --- [ Test worker] p6spy : #1706937300938 | took 0ms | statement | connection 74| url jdbc:h2:tcp://localhost/~/blog select b1_0.board_id,b1_0.content,b1_0.created_time,b1_0.last_modified_time,b1_0.member_id,b1_0.title from board b1_0 where b1_0.board_id=? select b1_0.board_id,b1_0.content,b1_0.created_time,b1_0.last_modified_time,b1_0.member_id,b1_0.title from board b1_0 where b1_0.board_id=31; 2024-02-03T14:15:00.939+09:00 INFO 2612 --- [ Test worker] cos.blog.web.model.entity.Reply : board select 발생 넣기 -- =================== 2024-02-03T14:15:00.940+09:00 DEBUG 2612 --- [ Test worker] org.hibernate.SQL : insert into reply (board_id, content, created_time, is_deleted, last_modified_time, like_count, member_id, reply_id) values (?, ?, ?, ?, ?, ?, ?, default) 2024-02-03T14:15:00.942+09:00 INFO 2612 --- [ Test worker] p6spy : #1706937300942 | took 0ms | statement | connection 74| url jdbc:h2:tcp://localhost/~/blog insert into reply (board_id,content,created_time,is_deleted,last_modified_time,like_count,member_id,reply_id) values (?,?,?,?,?,?,?,default) insert into reply (board_id,content,created_time,is_deleted,last_modified_time,like_count,member_id,reply_id) values (31,'replyreply','2024-02-03T14:15:00.939+0900',false,'2024-02-03T14:15:00.939+0900',0,12,default); =================== ```
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
data jpa로 form 객체 사용 시 정리가 안된 부분 질문드려요..
실전 data jpa를 완강하고 다시와서 듣는 중인데요머리속에 정리가 안되는 부분이 있습니다.. 예를들어Member라는 엔터티가 있고MemberForm이라는 객체를 만들었습니다(뷰템플릿에서 사용자에게 받은 파라미터를 Member로 전환하기 위해) 여기서 제가 정리가 안되는 것은 MemberForm이 Dto의 역활까지 해서 MemberForm 객체를 생성해서 사용 한다면 굳이 MemberDto를 생성, 사용을 안해도 되는 건가요? 즉 서비스계층에서 memberForm을 member로 전환 시켜주는 작업을 한번만 수행하면 되는걸까요? 추가로 서비스계층에서 그 전환과정이 있다면 서비스 계층에서는 Member 엔터티를 노출해도 되는지(Member member= new Member():와 같이) 궁금합니다. 그게 안된다면 Member 엔터티 객체 안에 MemberForm을 매개변수로 받는 생성자를 만들거나 변환메서드를 작성해야하는지 궁금합니다. 감사합니다.
-
해결됨김영한의 실전 자바 - 기본편
객체란 무엇입니까?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 밤에 잠이 안 와서 ,여러가지 생각들을 하다가, 문득 "객체가 뭐지?" 라는 생각을 하게 되었습니다. 근데.. 객체에 대해서 정리가 안되고, 그냥 벙찌게 되더라고요.나중에 면접관이 객체가 뭔가?? 라는 질문이 왔을때..(물론 다들 객체에 대해서 당연히 알고 있을 거라고 생각하고 질문은 안하시겠지만) 대답을 못하겠더라고요.객체에 대해서 말을 쓰면서도 말이죠.만약에 객체에 대해서 설명하라고 하면 어떻게 설명 해야할지 답변 부탁드립니다.(짜증나는 다형성 맨 마지막 문제풀이 때문에 계속 복습하고 부족한게 뭘까 생각하다가 여러가지들을 공부하게 되고 생각을 하다보니 이렇게 되네요... 빨리 영한님처럼 그냥 풀고 싶네요.)
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
웨이브 리프레시 버그(?) 대응이 안되네요
"Wave" 텍스트와 숫자가 겹치는 버그 고치려고 해도 잘 안됩니다원인이 Horizontal Layout Group 때문인 것 같은데 LayoutRebuilder.ForceRebuildLayoutImmediate(GetObject((int)GameObjects.WaveObject).GetComponent<RectTransform>()); 을 써도 안되네요..선생님께서는 어떻게 해결하셨는지 궁금해서 질문 드립니다
-
해결됨Next + React Query로 SNS 서비스 만들기
tanstack query 타입 지정
"use client"; import {useQuery, useQueryClient} from "@tanstack/react-query"; import {getUserPosts} from "../_lib/getUserPosts"; import Post from "@/app/(afterLogin)/_component/Post"; import {Post as IPost} from "@/model/Post"; type Props = { username: string; } export default function UserPosts({ username }: Props) { const { data } = useQuery<IPost[], Object, IPost[], [_1: string, _2: string, _3: string]>({ queryKey: ['posts', 'users', username], queryFn: getUserPosts, staleTime: 60 * 1000, // fresh -> stale, 5분이라는 기준 gcTime: 300 * 1000, }); const queryClient = useQueryClient(); const user = queryClient.getQueryData(['users', username]); console.log('user', user); if (user) { return data?.map((post) => ( <Post key={post.postId} post={post} /> )) } return null; }import {QueryFunction} from "@tanstack/query-core"; import {Post} from "@/model/Post"; export const getUserPosts: QueryFunction<Post[], [_1: string, _2: string, string]> = async ({ queryKey }) => { const [_1, _2, username] = queryKey; const res = await fetch(`http://localhost:9090/api/users/${username}/posts`, { next: { tags: ['posts', 'users', username], }, cache: 'no-store', }); // The return value is *not* serialized // You can return Date, Map, Set, etc. if (!res.ok) { // This will activate the closest `error.js` Error Boundary throw new Error('Failed to fetch data') } return res.json() } 기존 강의에서의 코드입니다. 제 생각에는 둘 다 타입을 지정해 줘야 할 필요가 있나? 라는 생각이 들어서 getUserPosts의 타입만 설정해봤는데, useQuery부분에서도 data 타입, key에 대한 타입, fn에 타입 모두 정상적으로 적용이 되는 거 같습니다. "use client"; import Post from "@/app/(afterLogin)/_component/Post"; import { useQuery, useQueryClient } from "@tanstack/react-query"; import { getUserPosts } from "../_lib/getUserPosts"; type Props = { username: string; }; export default function UserPosts({ username }: Props) { const { data } = useQuery({ queryKey: ["posts", "users", username], queryFn: getUserPosts, staleTime: 60 * 1000, // fresh -> stale, 5분이라는 기준 gcTime: 300 * 1000, }); const queryClient = useQueryClient(); const user = queryClient.getQueryData(["users", username]); console.log("user", user); if (user) { return data?.map((post) => <Post key={post.postId} post={post} />); } return null; } import { Post } from "@/model/Post"; import { QueryFunction } from "@tanstack/query-core"; export const getUserPosts: QueryFunction< Post[], [_1: string, _2: string, username:string] > = async ({ queryKey }) => { const [_1, _2, username] = queryKey; const res = await fetch(`http://localhost:9090/api/users/${username}/posts`, { next: { tags: queryKey, }, cache: "no-store", }); // The return value is *not* serialized // You can return Date, Map, Set, etc. if (!res.ok) { // This will activate the closest `error.js` Error Boundary throw new Error("Failed to fetch data"); } return res.json(); }; 이런식으로 약간 변형을 줘봤는데 기존의 코드 타입 지정과 차이가 있을까요?바꾼 부분은 UserPost에서 타입 지정은 모두 없애줬고, getUserPosts에서 next tags에 queryKey를 그대로 할당했습니다. (간혹 tags의 규칙상 queryKey에서는 가능해도 안되는 경우도 있다고 강의에서 말씀해주셨는데, 대부분의 경우에는 가능하기 때문에 대부분은 이렇게 충분하고 그런 경우에만 별도로 바꿔주면 될 거라고 생각했습니다.)
-
해결됨Backend 멀티쓰레드 이해하고 통찰력 키우기
1_Process와 Thread protobuf 부분 질문
위쪽 부분에서 궁금한점 있습니다protobuf를 사용해도 필드가 추가되면 어쨌든 어떤 것을 쓰던 JSON이랑 똑같이 공유되어야할 것 같은데 제가 놓친게 있을까요?참고로 전 protobuf 써본적 없습니다
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
스택 프레임에서
지역변수의 경우에는 매개변수, 이전bp값과는 다르게push 명령어 없이도 스택에 저장되는 것인가요?만약 맞다면mov ebp, espsub esp, ..... 이후 어느 명령어를 통해서지역변수 c의 값이 스택에 저장된 것인지 궁금합니다.
-
미해결따라하면서 배우는 고박사의 2D 플랫포머 게임 제작
강의자료 다운로드가 딱 53~54MB 정도에서 멈춥니다.
강의자료 다운로드가 계속 같은 진행정도에서 멈추네요.어떤 문제가 있는 것인지 알 수 있을까요?
-
미해결스프링 핵심 원리 - 기본편
member와 findMember의 .isEqualTo 비교
강의내용 7:00 에 등장하는 Assertions.assertThat(member).isEqualTo(findMember);에서 member와, findMember를 isEqualTo(내용비교)를 통해 내용이 같은지 검증을 하고 있습니다. 여기서는 당연히 member와 findMember의 내용비교가 같다는 것을 이해하였습니다.그런데 isSameAs(주소값 비교)로 검증을 해보아도 주소 값이 같다는 결과가 나왔습니다. println() 메서드를 통해 member와 findMember의 주소값이 같다라는 결과도 눈으로 확인하였습니다. member는 new Member(1L, "memberA", Grade.VIP); 를 통해 객체를 새로 생성하여 member객체에 담았고,findMember 객체는 member의 값을 join을 통해 memberServiceImpl.join -> MemoryMemberRepository.save를 호출하여 store에 저장되어이있는 값을 findById를 통해 가져와서 Member 타입의 findMember에 새로 저장을 했다라고 생각이 들어, 제 생각에는 member와 findMember의 주소값 비교가 다르다는 결과가 나와야 되지 않나 싶어 질문 남깁니다.member객체와 findMember의 주소값 비교가 어떻게 같을 수 있는 것인가요 ?
-
미해결Flutter 중급 1편 - 클린 아키텍처
freezed JsonKey 사용 예시 공유
import 'package:freezed_annotation/freezed_annotation.dart'; part 'photo.freezed.dart'; part 'photo.g.dart'; @freezed class Photo with _$Photo { factory Photo({ required int id, required String tags, @JsonKey(name: 'previewURL') required String previewUrl, }) = _Photo; factory Photo.fromJson(Map<String, dynamic> json) => _$PhotoFromJson(json); }