안녕하세요 파라매트릭 서치 2110 풀다가 오답처리된 코드에 궁금한 점 생겨 질문드립니다. 정답처리된 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class P2110 { static int N, C; static long result; static int[] home; static long parametricSearch() { long left=0; long right=home[N-1]-home[0]; long mid = (left+right)/2; while(left<=right) { if(isPossible(mid)) { left = mid+1; result = mid; } else { right = mid-1; } mid = (left+right)/2; } return result; } static boolean isPossible(long mid) { //그리디한판단 : 맨 첫번째를 두는게 이득 + 거리 mid만큼 떨어진 바로 다음 집에 두는게 이득 int cnt=1; int lastIdx=0; for (int i = 1; i < N ; i++) { if(home[i]-home[lastIdx]>=mid) { lastIdx=i; cnt++; } } return C<=cnt; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken()); C = Integer.parseInt(st.nextToken()); home = new int[N]; for (int i = 0; i < N; i++) home[i] = Integer.parseInt(br.readLine()); Arrays.sort(home); System.out.println(parametricSearch()); } } 75%에서 오답처리된 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class P2110 { static int N, C; static long result; static int[] home; static long parametricSearch() { long left=0; long right=home[N-1]-home[0]; long mid = (left+right)/2; while(left<=right) { if(isPossible(mid)) { left = mid+1; result = mid; } else { right = mid-1; } mid = (left+right)/2; } return result; } static boolean isPossible(long mid) { //그리디한판단 : 맨 첫번째를 두는게 이득 + 거리 mid만큼 떨어진 바로 다음 집에 두는게 이득 int cnt=1; int lastIdx=0; for (int i = 1; i < N ; i++) { if(home[i]-home[lastIdx]>=mid) { lastIdx=i; cnt++; } if(cnt==C) return true; } return false; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken()); C = Integer.parseInt(st.nextToken()); home = new int[N]; for (int i = 0; i < N; i++) home[i] = Integer.parseInt(br.readLine()); Arrays.sort(home); System.out.println(parametricSearch()); } } 다른 부분은 전부 동일하고 최소거리가 mid일 때 공유기 C개를 두는 것이 가능한지 판별하는 isPossible 내부에서 return만 다릅니다. for (int i = 1; i < N ; i++) { if(home[i]-home[lastIdx]>=mid) { lastIdx=i; cnt++; } if(cnt==C) return true; } return false; 설치할때마다 cnt를 증가시키고, cnt==C가 되는 시점에 도달하면 어차피 현재의 mid로 공유기 C개를 두는게 가능하단 의미니까 true를 리턴해서 끝내고, cnt==C에 도달하지 못한다면 C보다 적은 개수만 설치할 수 있으니 false를 리턴한다고 작성했습니다. 반면에 강의안으로 제공해주신 코드에서는 반복문 안에서 판단해서 리턴하는 것이 아니라, 반복문 전부 돈 결과인 cnt와 C를 비교해서 리턴하는 것으로 이해했습니다. 정답풀이가 맞는 방식이라는 점은 이해가 가는데 오답풀이가 어떤 반례가 있는지는 잘 모르겠습니다
강의 6.3) 기능구현하기 카운트 컴포넌트를 state로 만들어야 한다고 하셨는데 state대신 ref를 사용하면 어떻게 되나요? ref는 리렌더링을 유발하지는 않지만 dom에 접근이 가능한 걸로 알고 있습니다. 그렇다면 ref를 사용해도 무방하지 않냐는 것이 저의 생각입니다. ref를 사용한다면 ui변경이 가능하지만 리액트가 그 수정을 감지 못하는 문제가 생겨서 state를 사용하는 것인가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 안녕하세요. public void run() { while (!Thread.interrupted()) { if (jobQueue.isEmpty()) { Thread.yield(); continue; } ... } 위에 코드에서 Yield 를 사용하면 그 쓰레드가 양보를 해서 다시 스케쥴러로 들어간다고 하셨는데, 그러면 Thread.yield(); 가 실행이 된 후에, 다시 CPU 가 이 쓰레드를 실행시키기 전까지 그 다음 줄의 continue 코드는 실행되지 않고 멈춰있는 상태라고 생각하면 될까요? 그렇다면 쓰레드는 CPU 가 다시 실행시킬 시점에 몇번째 라인까지 실행을 했는지 기억하고 있다가 CPU 에게 알려주는 건가요? 감사합니다.
안녕하세요, React Navigation 강의를 수강하다가 오류가 해결되지 않아서 질문드립니다. expo를 통해 다음과 같이 index.js에 React Navigation을 적용했습니다. import { store } from "@/redux/store"; import MainScreen from "./screens/MainScreen"; import { Provider } from "react-redux"; import { NavigationContainer } from "@react-navigation/native"; import { createNativeStackNavigator } from "@react-navigation/native-stack"; import LoginScreen from "./screens/LoginScreen"; export default function HomeScreen() { const Stack = createNativeStackNavigator(); return ( <Provider store={store}> <NavigationContainer> <Stack.Navigator> <Stack.Screen name="Main" component={MainScreen} /> <Stack.Screen name="Login" component={LoginScreen} />{" "} </Stack.Navigator> </NavigationContainer> </Provider> ); } 그러나 다음과 같은 오류가 뜨며 빈화면만 보이더라구요ㅠ Error: Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, pass 'independent={true}' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them. 찾아보니 NavigationContainer가 중첩되었다는 것 같은데, 저는 계속해서 그대로 강의를 따라가고 있었고, 따로 NavigationContainer를 적용한 파일이 존재하지 않습니다 ㅠ 다음 속성을 추가해도 오류가 해결되지 않습니다 ㅠ 아마 어디선가 부모에서 NavigationContainer가 적용된 것 같은데 찾을 수가 없네요 ㅠㅠ independent={true} 조금 더 찾아보니 expo-router랑 충돌이 난 거일 수도 있다는데 정확하게 모르겠네요 ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. Instant.now () 메서드가 1970년 1월 1일 0시 0분 0초(UTC 기준)부터 현재까지 경과한 초(나노초)를 갖는 Instant 객체를 생성해서 참조를 반환한다고 보면 될까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 제가 만약에 글로벌한 서비스를 시작해서 미국에서 접속하면 미국의 시간을 보여주고 한국에서 접속하면 한국의 시간을 보여줄 때는 ZonedDateTime을 쓰고 서버에서 로그를 (미국에서 접속하든 한국에서 접속하든) 일관되게 남기고 싶다면 이때 Instant를 쓰면 되는 걸까요? 만약 미국 사람은 미국 시간으로 로그를 남기고, 한국 사람은 한국 시간으로 로그를 남긴다고 하면 로그의 순서를 따져야 할 때 미국 시간을 한국 시간으로(또는 한국 시간을 미국 시간으로) 변환 해서 순서를 비교해야 하기 때문에 Instant를 사용하는게 좋다는 걸까요?
너무 잘 알려주셔서 열심히 듣고있는데 이제 강의가 처음 올라온 날짜가 2019년도잖아요? 그러면 이제 5년이 지난건데 그 사이에 변경된 점들은 특별히 없을까요? 강사님이 요즘은 주로 이렇게 씁니다 라고 하셔서 그렇구나 하다가 강의의 요즘이 2019년이라는 생각에 질문글 남겨봅니다.
섹션04 이후 진행되는 app 라우터 강의에 rc버전을 설치 section04 이후 강의 중 next 14버전(latest)에서 사용하지 못하는 부분이 있을까요??? 그렇다면 어떤 것들이 있을까요? 강의를 바탕으로 개인 블로그를 만들어 배포해 볼 생각인데 rc버전을 활용하는 것에 문제는 없을까요?? next 강의를 들으며 느낀것이 최대한 dynamic한 사이트(페이지)들을 최대한 static하게 만들면서도 dynamic하게 만드는 것. <<< 이것이 next의 핵심 이라고 느껴지는데 제가 이해한 부분이 맞을까요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 궁금증이 생겨서 질문을 남깁니다. 예외를 잡아서 처리하는 코드를 보던 중, 영한님이 try 한다음 catch 부분 에서 MycheckedEception e 이렇게 하는것을 볼수 있는데요. 다른 catch의 객체 변수 이름을 보면 "e"라고 한 것을 확인할 수 있었습니다. catch에서 Exception예외 처리 로직의 이름을 지을때 'e' 라는 변수가 통용 되는 것인가요? 아니면 다른 변수 이름이 더 있나요? 답변 부탁 드립니다.