- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 해당 강의 홀수일때 처리하는 아래 코드에서 if (b % 2) ret = (ret * a) % c; (ret * a) % c 가 아니라 (ret * a%c) % c가 맞다고 생각 하였습니다. 예를 들어서 2^5가 들어간다고 생각해보면 모듈러 계산 공식에 맞춰서 (2^5)%c = (2^4%c * 2%c)%c 로 계산이 되기때문에 (ret * a%c) % c 라고 생각하였는데, 혹시 이 부분에서 제가 개념을 잘못 파악하고있는건지 궁금합니다
안녕하세요. 강사님께서 제공해주신 이분탐색 1번 2번 코드중 2번 코드로 새로운 문제를 풀려고 합니다. 1번 코드(left와 right 설정)으로는 잘 풀리는데 2번 코드(cur과 step 설정)로는 잘 안풀리네요. 백준 2343번 기타문제를 강사님께서 제공해주신 코드로 풀려고 아래와 같이 코드를 짜보았습니다. 하지만 원하는 결과를 얻지 못했는데요. 어떤 부분이 잘못된건지 알려주실 수 있을까요?? nums, blue_nums = map(int, input().split()) bluelay_length = list(map(int, input().split())) def check(length): count = 1 current_length = 0 for i in bluelay_length: if current_length + i <= length: current_length += i else: current_length = i count += 1 return count == blue_nums cur = 0 steps = 10000+1 while steps > 0: while cur + steps <= 10000+1 and check(cur + steps): cur += steps steps //= 2 print(cur) 감사합니다.
안녕하세요 선생님 🙂 이 문제를 이해하고 직접 풀기까지 많은 시간이 소요된 것 같습니다. 그래도 덕분에 업그레이드가 많이 된 것 같네요 ㅎㅎ 다름이 아니라, go함수 안에 있는 이중 for문의 for(int j = 1; j < n; j++)에서 범위가 왜 j < n이 정답이 되는지 잘 모르겠습니다. j <= n을 하여 세로선(가로인덱스)의 마지막 부분도 체크를 해줘야 할텐데 체크를 안해도 정답으로 인정되는게 이해가 안됩니다;; 알려주시면 감사하겠습니다 :)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이와 같이 코드를 작성하였는데 시간 초과가 나는데 왜 그런 것인가요? 일부러 시간복잡도가 m*n이 되지 않게 하려고 맵 2개를 만들어서, o(n)이 최고 시간복잡도가 되게끔 설계하였습니다. #include <bits/stdc++.h> using namespace std; int n; // 포켓몬의 수 int m; // 문제 수 map<int, string> poketmonsByNumber; map<string,int> poketmonsByName; vector<string>searchId; string name; string question; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cin>> n >> m; for(int i=0; i<n; i++){ cin>>name; poketmonsByNumber[i+1]=name; poketmonsByName[name]=i+1; } for(int i=0; i<m; i++){ cin>>question; if (isdigit(question[0])) { int id = stoi(question); searchId.push_back(poketmonsByNumber[id]); } else{ string id=to_string(poketmonsByName[question]); searchId.push_back(id); } }; for(auto id : searchId) { cout<<id<<endl; } return 0; }
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님. 입력받은 문자열을 map을 사용해 알파벳 당 개수로 저장했습니다. 홀수가 2개 이상이면 sorry를 출력하도록 했습니다. 홀수가 1개인 경우, 홀수 알파벳의 개수 -1 을 하고 , 홀수 알파벳을 저장했습니다. 그 후 다시 루프를 돌면서 각 알파벳 개수의 절반만큼 오름차순으로 문자열을 만들고, 미리 저장해둔 홀수 알파벳 1개를 더한 뒤 , 오름차순 문자열을 뒤집어서 더하는 방식으로 코드를 구현했습니다. 이것저것 다 넣어서 해봤지만 반례를 찾지 못하고있습니다 ㅜ http://boj.kr/86a69d1d5ce647b09c5a121b0c9e5ea9
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님 아래와 같이 코드를 작성했는데요, 제가 짜낼 수 있는 예외 케이스들을 넣어서 돌려봐도 잘 돌아가는데 왜 틀렸다고 나오는지 모르겠네요 ㅜ https://www.acmicpc.net/source/82101102
http://boj.kr/7c3f26d3241248269e0dafaccddfdc0e 안녕하세요 큰돌 선생님. 이번 문제를 탑다운 방식으로 풀어 봤는데 어느 부분이 틀린지 모르겠습니다... 그리고 dp배열을 0이 아닌 -1로 초기화 하는 이유가 0이 답의 범위에 있다라고 다른 질문에서 얘기해 주셨었는데 0이 답의 범위라는게 문제의 답이 0이 나올 수 있다는 건지 dp배열 안의 값이 0이 될 수 있다는 의미인지 잘 모르겠습니다
안녕하세요. 강의를 보기 전에 문제를 먼저 풀어보았습니다. 5!를 생각해보면 5*4*3*2*1 인데, 5가 나오기 위해선 반드시 2와 4가 나와야하고, 따라서 5의 개수가 무조건 적다고 생각했습니다. 그래서 10억 이하의 모든 5의승수를 저장해놓는 배열을 만들어두고, 1~n 사이의 수 중 5^k로 나누어 떨어지는 수가 발견되면 cnt에 k를 더하도록 만들었는데, runtime error가 발생했습니다. 에러 코드는 divide by zero 가 나오는데, 나눗셈을 사용하지 않는데 이런 에러가 왜 발생하는걸까요? http://boj.kr/f55433f25a704564a5d253bad99cd7ac
import java.util.Scanner; public class Main { public int solution(int n, int m, int[] arr){ int answer = 0, sum = 0; for(int i=0;i<m;i++){ sum += arr[i]; } for(int i=0;i<n-m;i++){ answer = Math.max(answer, sum); sum = sum - arr[i] + arr[i+m]; } //answer = Math.max(answer, sum); return answer; } public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int m = kb.nextInt(); int[] arr = new int[n]; for(int i=0;i<n;i++) arr[i] = kb.nextInt(); System.out.println(T.solution(n, m, arr)); } } 해당 코드가 왜 정답이 되는지 모르겠습니다. 위 코드처럼 작성하면 for문의 제일 마지막번째에 sum과 answer를 비교하지 않고 answer를 리턴하게 되는건데 그럼 오답이지 않나요? 10 3 1 2 3 4 5 6 7 8 9 10 이렇게 마지막 연속된 K일에서 최댓값으로 주어진다면 값이 제대로 안 나오는데 왜 정답이 되는지 궁금합니다.
안녕하세요, 강의를 듣고 계신 여러분! 여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 1. chatGPT를 이용해보기 단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요! 강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지 를 명확히 제시해 주시면 답변에 도움이 됩니다! 자신은 어떻게 이해했는지 또한 적어주면 좋습니다! 강의 중 브루트포스 알고리즘 마지막 백준 1342번 행운의 문자열 문제입니다. 순열로 접근한 처음 코드 시간 초과 후 선생님 강의 설명을 들으면서 백트래킹으로 수정했는데요, 근데,, 로직은 거의 차이가 없고 다만 초기화나 선언 등 순서의 차이 같은데, 저는 시간 초과를 해결 하지 못했고, 선생님 코드를 복붙,,, 했더니 성공하더라구요 😓 그래서 어떤 차이 분석을 할 수 있을지 질문 남깁니다. 코드는 아래와 같고 풀이2번을 참고하였습니다.(시간초과 코드입니다) import sys input = sys.stdin.readline s = input() choice = [] dic = dict() chars = set() cnt = 0 for l in s: chars.add(l) if l not in dic: dic[l] = 0 dic[l] += 1 def dfs(level): global cnt, choice, dic if level == len(s): cnt += 1 return for l in chars: if dic[l] == 0: continue if (not choice) or (choice[-1] != l): dic[l] -= 1 choice.append(l) dfs(level + 1) dic[l] += 1 choice.pop() dfs(0) print(cnt)
저는 강의를 한번 다듣고나서 강의 도중 강사님께서 코드 작성하신것을 바탕으로 백준 문제에 대한 풀이를 수행하고 있습니다. 그러다 보니 문제 풀이가 기억이 안나거나 헷갈리는 부분이 있을때 수업 자료의 솔루션 코드를 참고하고자 하는데, 그럴때마다 수업 도중 본 코드와 상이하여 당황스럽습니다. 강의 중 짠 코드를 바탕으로 수업자료 끝의 솔루션 코드를 작성해주시면 더 도움이 될것 같습니다.
http://boj.kr/7eea708ea65645e784b2eaab4ec27b88 다음과 같은 방법으로 시간을 0에서 부터 시작하여 K시간까지 하는 방법으로 코드를 작성하였는데 왜 틀린 답이라고 나올까요?? 만약 저와 같은 방법으로 하려면 어떤 식으로 코드를 수정해야 될까요? 아 그리고 -1e6 == -1000000이라고 생각하면 될까요?
안녕하세요, 강의를 듣고 계신 여러분! 여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 1. chatGPT를 이용해보기 단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요! 강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지 를 명확히 제시해 주시면 답변에 도움이 됩니다! 자신은 어떻게 이해했는지 또한 적어주면 좋습니다! ash: python: command not found [Finished in 16ms with exit code 127] [shell_cmd: python -u "/Users/sindonghui/Desktop/ test.py " < input.txt] [dir: /Users/sindonghui/Desktop] [path: /Library/Frameworks/Python.framework/Versions/3.12/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/ com.apple.security .cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/ com.apple.security .cryptexd/codex.system/bootstrap/usr/bin:/var/run/ com.apple.security .cryptexd/codex.system/bootstrap/usr/appleinternal/bin] 밑에 이렇게 떠요 ex) 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의 에서 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해 했습니다. 그러면 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 어느 파트 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의 자신은 어떻게 이해했는지 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해 어떤 부분이 궁금한지 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 데이터를 삭제하는 기능에서 removeNode 를 null 값으로 처리하는 이유가 있을까요? removeNode 를 더 이상 사용되지 않는 것 같은데, 해당 노드의 item 과 next 를 null 값으로 처리해야만 GC 대상이 되는건가요? null 값으로 명시하지 않아도 될 것 같아 질문드립니다. // 추가 코드 public Object remove(int index) { Node removeNode = getNode(index); Object removedItem = removeNode.item; if (index == 0) { first = removeNode.next; } else { Node prev = getNode(index - 1); prev.next = removeNode.next; } removeNode.item = null; removeNode.next = null; size--; return removedItem; }
public class ItemPriceTest { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("사과", 500); map.put("바나나", 500); map.put("망고", 1000); map.put("딸기", 1000); // 코드 작성 ArrayList<String> list = new ArrayList<>(); for (Map.Entry<String, Integer> entry : map.entrySet()) { if (entry.getValue().equals(1000)) { list.add(entry.getKey()); } } System.out.println(list); } } 여기서 entry.getValue() 의 비교를 == 으로 바꿔도 돌아가는데 상관없을까요? 객체의 경우 == 이냐, equals냐에 따라 동일성, 동등성 비교로 나뉘는거같은데 이와같이 값 비교 할 땐 둘 다 사용할 수 있는걸까요? == 을 사용해도 망고, 딸기가 출력되어 여쭤봅니다 [질문 내용] 여기에 질문 내용을 남겨주세요.
안녕하세요. 나머지 합 구하기 핵심 아이디어 중 첫 번째 (A+B)%C는 ((A%C) + (B%C)) % C와 같다. 는 것은 본 문제를 푸는 데에는 직접적 관련이 없는 것 같은데 어떻게 관련이 되어 있는지 궁금합니다. 문제가 연속된 부분의 합의 나머지를 구하는 것인데, (A[i+1] + ... + A[j])%M = (S[j] - S[i])%M 이 되고, 나머지 연산이 linear 연산이기 때문에 (S[j] - S[i])%M = 0이라면 S[j]%M = S[i]%M 이라고 할 수 있을 것 같아서요. 이 경우에 핵심 아이디어 2번째, 3번째로도 문제 풀이가 가능한 것 같은데, 핵심 아이디어 1번째는 어떤 역할을 하는지 궁금합니다. 감사합니다. 이 되어