묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3 - L 시간초과 질문있습니다.
안녕하세요. 백트레킹&원상복귀 적용하고 레퍼런스 매개변수로 넘겨주고 unorded_set으로 O(1)까지 적용했는데 시간초과가 나오네요... 제가 어느부분을 놓쳤을까요...?http://boj.kr/afa0abf888d948f59eefb9a57dd4e07e감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-I 2870번 런타임 에러 ㅠㅠ
테스트 케이스 실행해보면 전부 정상적으로 작동하는데, 왜 백준에 돌리기만 하면런타임 에러(out_of_range)가 나는지 잘 모르겠네요 ㅜ 계속 봤는데 도저히 모르겠어서 질문합니다.... 분명 int가 아니라 string으로 수정했는데, stoi를 사용하는 과정에서 난건가 싶기도 하고.. 도움 부탁드립니다... http://boj.kr/279c631f1e74406ca3551d6f7c15ed41
-
해결됨김영한의 실전 자바 - 중급 2편
pdf파일 표 질문이요(저만 안보이는건지?)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 8번째 pdf파일 set의 주요 메서드 설명을(3page) 보고 있는 도중에, 글씨가 안 보이는 부분이 있어서 여쭤 봅니다.pdf파일로 열어서 보고 있는데 표 끝부분이 정확히 안나와서, 저만 그런건지 알고 싶어서 질문을 올립니다.혹 저만 그런 건가요? 아니면 다들 똑같은신지요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3 - K 맞왜틀 질문있습니다.
안녕하세요. 테스트 케이스는 다 맞는데, 2%에서 틀렸다고 나오는데 반례를 도저히 못찾겠습니다. http://boj.kr/c07d7c93a74e4b59a390b29486c781af 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
코딩테스트 관련 질문이 있습니다.
실제 코딩테스트 상황에서 프로그래머스를 이용한다면 문제에 나온 예제 말고 보이지 않는 예제들이 통과된다면 다 맞앗다고 생각하면 될까요?다 통과되었는데 알고보니 회사측만 알수있는 테스트 케이스들이 더 있을수도있나요?
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
다른 주제 강의
안녕하세요!! 먼저 좋은 강의 너무 감사드립니다 이해가 너무 잘돼요 ㅜㅜ전에 글중에서 올해 하반기에 다른주제 강의들도 올리실 계획 있다고 본 것 같은데 (DP, BFS 등등) 혹시 구체적인 일정 나온게 있나요? 나오면 꼭 결제하고 싶습니다! 감사합니다^-^
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-C 질문
안녕하세요. 7-C 1103을 풀어봤는데 예제는 다 맞는 것 같은데 왜 틀린지 모르겠어서 질문드립니다. 감사합니다.http://boj.kr/f0e77f6d4de04f718e138d2c9337442e
-
미해결[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
최근에 올린 질문, 코드블럭으로 공유드립니다!
import java.util.*; public class Main { static int N, M, R; static int[] answer; static ArrayList<Integer>[] graph; static boolean[] visited; static int order = 1; public static void dfs(int idx) { visited[idx] = true; answer[order] = idx; order++; for(int i = 0; i < graph[idx].size(); i++) { if(!visited[graph[idx].get(i)]) dfs(graph[idx].get(i)); } } public static void main(String[] args) { Scanner input = new Scanner(System.in); N = input.nextInt(); M = input.nextInt(); R = input.nextInt(); answer = new int[N+1]; visited = new boolean[N+1]; graph = new ArrayList[N+1]; for(int i = 1; i <= N; i++) { graph[i] = new ArrayList<>(); } for(int i = 0; i < M; i++) { int x = input.nextInt(); int y = input.nextInt(); graph[x].add(y); graph[y].add(x); } for(int i = 1; i < graph.length; i++) { Collections.sort(graph[i], Collections.reverseOrder()); } dfs(R); for(int i = 1; i < answer.length; i++) { System.out.println(answer[i]); } } }이렇게 구현한 경우, 틀렸다고 나오는데,ide로 돌리고 출력해보면14320으로 정상 출력되는데.. 이유를 모르겠습니다ㅠㅠ!선생님이 작성해주신 코드answer[idx] = order; order++; 제가 작성한 코드answer[order] = idx; order++;이렇게해도, 제가 하나씩 디버깅해서 따라가보면, 정답과 맞게 나오는데, 틀렸다고합니다.. !
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
질문이 있습니다. dfs 메서드에 order를 이렇게 구현하면 안되는 이유가 무엇인가요?
이렇게 구현한 경우, 틀렸다고 나오는데,ide로 돌리고 출력해보면14320으로 정상 출력되는데.. 이유를 모르겠습니다ㅠㅠ!
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
2강 사전문제
안녕하세요.2강 사전문제 2강_0.배경지식 퀴즈.ipynb에서 배경지식 퀴즈 1의 힌트 두 번째 줄에 숫자가 잘못 표기된 것 같습니다.다음과 같이 기재되어 있는데, 첫번째 거듭제곱이 1*10^2가 맞는 게 아닌지요?
-
미해결김영한의 실전 자바 - 중급 2편
HashCode override
김영한 선생님의 자료의 경우에는 매개변수가 Object value 였는데 만약 제네릭을 K key 라고 할때에도return Math.abs(Objects.hashCode()) 라고 하는게 맞나요 ? 아니면 Math.abs(key.hashCode()) 가 맞나요?gpt 말로는 Objects 로 해야 NullPointerException 을 방지할 수 있다고 하는데 왜 그런건가요 ?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-A 반례 질문있습니다.
안녕하세요 큰돌님.http://boj.kr/06f3ee21acda4846ae974c80be0893d8예제 출력은 맞는데 틀렸다고 나와서 반례를 찾아보려고 했지만 못찾겠습니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
쿼드트리 질문있습니다
http://boj.kr/4b7b07dcac794a348b06eba6291b9ac2제가 작성한 코드입니다. 디버깅 해가면서 반례 같은 것들 찾아서 입력해보는데어디가 틀린지 잘 모르겠습니다 ㅜㅠ
-
미해결김영한의 실전 자바 - 중급 2편
Shuttle에 많이 태우기 위해 코드를 수정한 후 생긴 사이드 이팩트
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]```package generic.test.ex3; import generic.test.ex3.unit.BioUnit; public class Shuttle<T extends BioUnit> { private BioUnit[] units; private int unitCount; public Shuttle() { units = new BioUnit[10]; } public void in(T unit) { units[unitCount++] = unit; } public T out() { return (T) units[0]; } public void showInfo() { for (int i = 0; i < unitCount; i++) { System.out.println("이름: " + units[i].getName() + " HP: " + units[i].getHp()); } } } package generic.test.ex3; import generic.test.ex3.unit.Marine; import generic.test.ex3.unit.Zealot; import generic.test.ex3.unit.Zergling; public class ShuttleTest { public static void main(String[] args) { Shuttle<Marine> shuttle1 = new Shuttle<>(); shuttle1.in(new Marine("마린", 40)); shuttle1.in(new Marine("마린2", 45)); shuttle1.showInfo(); Shuttle<Zergling> shuttle2 = new Shuttle<>(); shuttle2.in(new Zergling("저글링", 35)); shuttle2.in(new Zergling("저글링2", 35)); shuttle2.in(new Zergling("저글링3", 35)); shuttle2.in(new Zergling("저글링4", 35)); shuttle2.showInfo(); Shuttle<Zealot> shuttle3 = new Shuttle<>(); shuttle3.in(new Zealot("질럿", 100)); shuttle3.in(new Zealot("질럿2", 100)); shuttle3.in(new Zealot("질럿3", 100)); shuttle3.in(new Zealot("질럿4", 100)); shuttle3.showInfo(); UnitPrinter.printV1(shuttle1); UnitPrinter.printV2(shuttle1); } } Shuttle을 생성하고 내부에 많이 태우고 싶어서 코드를 조금 수정해 보았습니다 ! 그런데 코드를 이렇게 수정하니 문제풀이 시간 때 package generic.test.ex3; import generic.test.ex3.unit.BioUnit; public class UnitPrinter { public static <T extends BioUnit> void printV1(Shuttle<T> shuttle) { T out = shuttle.out(); System.out.println("이름: " + out.getName() + "HP: " + out.getHp()); } public static void printV2(Shuttle<? extends BioUnit> shuttle) { BioUnit out = shuttle.out(); System.out.println("이름: " + out.getName() + "HP: " + out.getHp()); } }이 코드를 출력하기 위해서 Shuttle 클래스에 out메서드에 unit 1명만 출력하기 위해 (T) units[0]을 반환하였는데요, 이렇게 한 덕분에 문제 요구사항 대로 잘 나왔지만,Shuttle 클래스의 out 메서드에 이러한 린트가 발생합니다. Unchecked cast: 'generic. test. ex3.unit. BioUnit' to 'T' 왜 이러한 문제가 발생하는지 파악을 하지 못했고,혹시 코드를 이렇게 작성하게 된다면 어떤 문제점이 발생하는지, 어떻게 리팩터링 하면 좋을지 조언을 구하고 싶습니다 !
-
미해결김영한의 실전 자바 - 중급 2편
와일드 카드는 이미 만들어진 제네릭 타입을 활용할 때 사용한다 ?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 !강의를 통해 제네릭에 대해 알 수 있어서 감명깊었습니다.회사 코드를 보면서 막혔었는데 점차 이해가 되고 있어요 ! 감사 인사 먼저 전합니다 ㅎㅎGeneric2 정리 부분 11:06초에 질문 있습니다 !와일드카드는 제네릭 타입이나, 제네릭 메서드를 선언하는 것이 아니다.와일드 카드는 이미 만들어진 제네릭 타입을 활용할 때 사용한다. 이 부분이 이해가 잘 되지 않습니다 ...! public static void printV2(Shuttle<? extends BioUnit> shuttle) { BioUnit out = shuttle.out(); System.out.println("이름: " + out.getName() + "HP: " + out.getHp()); }package generic.test.ex3; import generic.test.ex3.unit.BioUnit; public class UnitPrinter { public static <T extends BioUnit> void printV1(Shuttle<T> shuttle) { T out = shuttle.out(); System.out.println("이름: " + out.getName() + "HP: " + out.getHp()); } public static void printV2(Shuttle<? extends BioUnit> shuttle) { BioUnit out = shuttle.out(); System.out.println("이름: " + out.getName() + "HP: " + out.getHp()); } } 강의에서 사용한 와일드카드 메서드 예시입니다 ! printV2가 와일드카드 메서드 인데요, 이 메서드를 구현한 UnitPrinter 클래스는 제네릭 타입을 선언(?)하지 않았는데도 불구하고 사용하고 있는데, 어떤 인스턴스를 기준으로 제네릭이 "이미 만들어진 제네릭 타입"으로 간주하면 될까요?제가 아직 깊이가 부족하여 이해를 잘 못한 것일 수 있지만, 만약 Shuttle 클래스에서 제네릭 타입을 선언하지 않고, <?>만을 사용하여 메서드를 만든다면 잘못된 사용법인지궁금합니다 !와일드카드는 제네릭 타입이나, 제네릭 메서드를 선언하는 것이 아니라 이미 만들어진 제네릭 타입을 활용할 때 사용한다의 예시가 더 있다면 조언 부탁드리겠습니다 ! 감사합니다 ☺
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
1강 연습문제&목표문제 - 복습 문제2
첫 번째 예시에서 출력이 [4, 16] 이 맞지 않을까요?그리고 문제에 대한 모범 답안은 따로 제공해주시는 건 없을까요?
-
미해결Python 알고리즘 베스트 10
문제풀이 서비스 버그 문의드립니다
화면 왼쪽의 [Q1. 자격증명], [Q2. 암호문] 등의 버튼을 클릭해도 해당 문제가 있는 html페이지로 넘어가지 않습니다chrome 외에 safari로 해도 마찬가지이고요url 파라미터로 page=2 넣어서 직접 접속하니 넘어가기는 해서 불편한 대로 쓰고는 있는데요https://pyalgo.co.kr/?page=2처음 오는 분들은 이런 부분을 전혀 모르실 거고 애초 명백히 잘못된 버그이니 빨리 고쳐주시기 바랍니다<li><a href="#" id="q1" class="btn-que success">Q1. 자격 증명</a></li>보니까 href속성에 값이 제대로 있지 않습니다 임의로 값을 바꾸고 클릭하니 잘 넘어가지네요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
17822 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.설명하신 것과 비슷하게 코드를 작성을 했고 테스트 케이스도 통과를 해서 제출을 했더니 그냥 광탈을 하네요...일단 강의 보고 제출을 했지만 왜 이 코드가 틀렸는지 모르겠어서 질문드립니다..실수를 한건지 그냥 논리 자체가 틀린건지 모르겠네요.. 무식한 질문인 거 알지만 너무 모르겠어서 질문드립니다ㅜㅜ#include <bits/stdc++.h> using namespace std; int N, M, T, ret, x, d, k; int ty, tx; int dy[] = { -1, 0, 1, 0 }; int dx[] = { 0, 1, 0, -1 }; int a[54][54], visited[54][54]; void rotate(int* arr, int n) { int temp[54] = { 0 }; for (int i = 0; i < M; i++) { temp[(i + n) % M] = arr[i]; } memcpy(arr, temp, sizeof(temp)); return; } void rotate_r(int* arr, int n) { int temp[54] = { 0 }; for (int i = 0; i < M; i++) { temp[(i - n + M) % M] = arr[i]; } memcpy(arr, temp, sizeof(temp)); return; } bool bfs(int sy, int sx, int num) { visited[sy][sx] = 1; queue<pair<int, int>> q; q.push({ sy, sx }); bool flag = 0; while (q.size()) { tie(ty, tx) = q.front(); q.pop(); for (int i = 0; i < 4; i++) { int ny = ty + dy[i]; int nx = tx + dx[i]; if (ny < 0 || ny >= N ||visited[ny][nx]) continue; if (nx < 0 || nx >= M) { //인덱스를 이동해야함.. 원형이기 때문에 나가지 않음 // 0 -> 4, 4 -> 0으로 바뀜 if (nx < 0) { nx = M-1; } else if (nx >= M) { nx = 0; } } if (a[ny][nx] != num) continue; visited[ny][nx] = 1; q.push({ ny, nx }); a[ty][tx] = 0; a[ny][nx] = 0; flag = 1; } } return flag; } int main() { cin >> N >> M >> T; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { cin >> a[i][j]; } } while (T--) { cin >> x >> d >> k; if (d == 0) { rotate(a[x - 1], k); while (2 * x <= N) { int temp = x * 2; rotate(a[temp - 1], k); x++; } } else { rotate_r(a[x - 1], k); while (2 * x <= N) { int temp = x * 2; rotate_r(a[temp - 1], k); x++; } } memset(visited, 0, sizeof(visited)); int sum = 0; int cnt = 0; bool flag = 0; bool check = 0; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { sum += a[i][j]; if (a[i][j] != 0) { cnt++; } if (!visited[i][j] && a[i][j] != 0) { flag = bfs(i, j, a[i][j]); //한번이라도 지운다면 } if (flag) { check = 1; } } } if (!check) { for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { double aver = (double)sum / (double)cnt; if (a[i][j] != 0 && (double)a[i][j] > aver) { a[i][j] = a[i][j] - 1; } else if (a[i][j] != 0 && (double)a[i][j] < aver) { a[i][j] = a[i][j] + 1; } } } } //a[0][0]; } //a[0][0]; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { ret += a[i][j]; } } cout << ret; }
-
미해결김영한의 실전 자바 - 중급 2편
stack구조관련질문
package collection.deque.test.stack; import java.util.ArrayDeque; import java.util.Deque; public class BrowserHistory { private Deque<String> history = new ArrayDeque<>(); private String currentPage = null; public void visitPage(String s) { if(currentPage != null){ history.push(currentPage); } currentPage = s; System.out.println("방문 : "+s); } @Override public String toString() { return "BrowserHistory{" + "stack=" + history + '}'; } public String goBack() { if(!history.isEmpty()){ currentPage = history.pop(); System.out.println("뒤로가기 : "+currentPage); return currentPage; } return null; } public void pop(){ System.out.println(history.pop()); } } 문제와풀이3 -stack시간 수업에관한 질문입니다 stack구조의 경우 마지막에 넣은 입력이 pop()을 하면 나오는데 이경우는 마지막 전에 입력한것이 나옵니다 이유가뭘까요??
-
미해결김영한의 실전 자바 - 중급 2편
컬렉션프레임워크 Stack 관련질문
package collection.deque.test.stack; import java.util.ArrayDeque; import java.util.Deque; public class BrowserHistory { private Deque<String> history = new ArrayDeque<>(); private String currentPage = null; public void visitPage(String s) { if(currentPage != null){ history.push(currentPage); } currentPage = s; System.out.println("방문 : "+s); } @Override public String toString() { return "BrowserHistory{" + "stack=" + history + '}'; } public String goBack() { if(!history.isEmpty()){ currentPage = history.pop(); System.out.println("뒤로가기 : "+currentPage); return currentPage; } return null; } } ////////////////////// package collection.deque.test.stack; public class BrowserHistoryTest { public static void main(String[] args) { BrowserHistory browser = new BrowserHistory(); // 사용자가 웹페이지를 방문하는 시나리오 browser.visitPage("youtube.com"); browser.visitPage("google.com"); browser.visitPage("facebook.com"); // 뒤로 가기 기능을 사용하는 시나리오 String currentPage1 = browser.goBack(); System.out.println("currentPage1 = " + currentPage1); String currentPage2 = browser.goBack(); System.out.println("currentPage2 = " + currentPage2); System.out.println(browser); } } 위의 goBack 메서드 실행코드가 Pop()인데 currentPage1 에서 facebook이 출력이되지않고 google이 출력되는 이유가 궁금합니다 스택구조는 마지막에 입력한것이 나오게 되어있는데 그 전에 입력한것이 왜 나오는 이유가 궁금합니다