묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 질문입니다.
http://boj.kr/ffd2efb190a74fd4874666aed051a59b안녕하세요 선생님.나름대로 반례처리까지 다 했다 생각하는데 런타임 에러가 발생합니다.예제는 통과하는데 어떤 점이 문제인지 잘 모르겠습니다 ㅜ
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
강의 구매 했습니다.
강의 구매 해보았습니다. 열심히 달려 볼게요 🏃♂그나저나 파이썬 해볼 생각 하니까 벌써부터 두근두근 되는데요? ㅎㅎ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-O 맞왜틀 질문드립니다.
http://boj.kr/d7325e4e28e746d2b5be617cc3c6b18e스택을 사용해서 풀었고 예제도 다 맞는데4%에서 틀렸습니다가 나와서 충격이었습니다.. 어느부분이 틀린건지 알고싶습니다.
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
백준 사용 시 채점 언어
백준에서 정답코드를 그대로 붙여넣었는데도 불구하고 시간초과가 나서, 채점언어를 python3에서 pypy3로 바꿨더니 정답이 되었습니다.. 혹시 왜 그럴까요? 그리고 어떤 점이 다른가요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
2중 for문 한번으로 하려고 고민했습니다.
public class 격자판_최대합 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] panel = new int[n][n]; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) panel[i][j] = sc.nextInt(); DiagonalCalculator diagonal = new DiagonalCalculator(); RowColumnCalculator row = new RowColumnCalculator(); RowColumnCalculator column = new RowColumnCalculator(); for (int rowIndex = 0; rowIndex < n; rowIndex++) { for (int colIndex = 0; colIndex < n; colIndex++) { int rowNum = panel[rowIndex][colIndex]; int colNum = panel[colIndex][rowIndex]; diagonal.calc(rowIndex, colIndex, rowNum, n); row.tempSum(rowNum); column.tempSum(colNum); } row.calcMaxSum(); column.calcMaxSum(); } int diagonalSum = diagonal.getMaxSum(); int rowSum = row.getMaxSum(); int colSum = column.getMaxSum(); int maxValue = Math.max(diagonalSum, Math.max(rowSum, colSum)); System.out.println(maxValue); } private static class DiagonalCalculator { private int leftSum = 0; private int rightSum = 0; public void calc(int rowIndex, int colIndex, int num, int length) { boolean sameLoc = rowIndex == colIndex; if (sameLoc) leftSum += num; if ((rowIndex + colIndex) == length) rightSum += num; } public int getMaxSum() { return Math.max(leftSum, rightSum); } } private static class RowColumnCalculator { private int totalSum = 0; private int tempSum = 0; public void tempSum(int num) { tempSum += num; } public void calcMaxSum() { if (totalSum < tempSum) { totalSum = tempSum; } tempSum = 0; } public int getMaxSum() { return totalSum; } } }클래스를 분리해서 계산하도록 하니 메인 로직에서는 필요한 값을 넘겨주기만 해도 되고, 나중에 결과를 받아올 때에도 메서드만 호출하면 되서 편했는데 전체적으로 코드가 좀 복잡해지지는 않는지, 이런 부분이 궁금합니다!
-
미해결김영한의 실전 자바 - 중급 2편
직접 구현하는 배열 리스트1 - 시작 챕터에서 질문.
public Object set(int index, Object element) {Object oldValue = get(index); elementData[index] = element; return oldValue; } public void add(Object e) { elementData[size] = e; size++; } System.out.println(list.size()); 3 System.out.println(list.set(3, "r")); System.out.println(list);System.out.println("==범위 초과=="); list.add("d"); 아래 출력결과에서,3null[a, b, c] size=3, capacity=5 set(int index, Object element) { elementData[3] ="r"을 할당하는게 [a, b, c,r] 안 된게 이해가 안가는게, list.add("d") add(Object e) { 에서 elementData[3] = "d" 똑같은 코드인데, "d"를 넣어준거는 할당이 되고, AI 에게 질의한 결과 set메서드는 index 3에 값이 무조건 유효값이 있어야 할당이 된다고 답변 하는데, set이나 add 나 그럼 add의 값은 할당이 된건데, set메서드에 유효값이 있어야 한다는 조건이 왜 붙는건지, 각각의 메서드 안에는 elementData[3] ="r"elementData[3] = "d" 같은걸 수행하는데, set에만 해당 index에 유효값이 있어야 한다 조건문은 코드에 있지 않은데,list.set(3, "r") r도 [a, b, c,r] 할당이 되야 될거 같은데(제 생각에는) 질문을 남겨봅니다. ai 한테 답변 받았지만 풀리지 않아 질문 드립니다. 항상 감사합니다. ==범위 초과== [a, b, c, d] size=4, capacity=5
-
미해결김영한의 실전 자바 - 중급 2편
문제와 풀이3 - 제네릭 메서드와 와일드카드 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]<영한님 코드>public static void printV2(Shuttle<? extends BioUnit> t1) {BioUnit unit = t1.out();System.out.println("이름: " + unit.getName() + ", HP: " + unit.getHp());}<제 코드>public static void printV2(Shuttle<? extends BioUnit> shuttle) { shuttle.showInfo(); }저는 매개변수 shuttle이 어차피 Shuttle 타입으로 넘어온다고 생각해서 바로 shuttle에서 작성한 메서드를 사용했는데, 제가 생각하는게 맞는지, 또 t1.out()에서 반환되는 값을 받아서 사용하는 것이 더 이점이 있는지 궁금합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
#include 질문
해설코드에서는 모두 #include <bits/stdc++.h> 를 사용하던데백준에서는 이걸 못쓰더라구요.. 대신 #include <iostream> , <algorithm> 등등 일일이 추가해야되던데실제 기업 코딩테스트를 칠때도 후자처럼 일일이 추가해야하나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 메모리 초과 질문
안녕하세요 문제 풀다가 메모리 초과 관련해서 질문이 있어서 질문드립니다. 노드들 신뢰 관계를 2차원 배열 h[10001][10001] 로 선언하면 메모리 초과가 발생하고 vector<int> h[10001]로 선언하면 발생하지 않습니다. 동적으로 선언해도 최대 범위에 도달하게 되면 똑같은 메모리를 쓰는것 아닌가요?? vector선언시 메모리 초과가 발생하지않는지 궁금합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
정답을 맞추긴 했는데 잘 모르겠는 부분이 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.http://boj.kr/d0e317b2e09d48c6b80b31418d2b9fa4정답이라고는 뜨는데-merge 함수에서 int sum; 이렇게 적으면 틀렸다고 나오더라구요..왜 그러는지랑 괜찮게 작성한 코드인지 궁금합니다!!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-H 질문있습니다
최대한 혼자 해보려고 했는데 자꾸만 오답이 나오네요..예제는 정답이 나오는데 제출하면 틀립니다ㅠㅠhttp://boj.kr/6008b3de635942b08297667285b088b4코드좀 봐주실수 있으신가요??//링크 수정했습니다 !
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
19942 다이어트 질문 드립니다
안녕하세요, 강사님! 강의 잘 듣고 있습니다.def recur(idx, A, B, C, D, E): global answer, result, tmp if idx == N: if a <= A and b <= B and c <= C and d <= D: # 모든 영양소를 충족했다면 if answer > E: answer = min(answer, E) result = tmp[:] return return # 재료를 사용한 경우 tmp.append(idx+1) recur(idx+1, A+ingre[idx][0], B+ingre[idx][1], C+ingre[idx][2], D+ingre[idx][3], E+ingre[idx][4]) # 재료를 사용하지 않는 경우 tmp.pop() recur(idx+1, A, B, C, D, E) N = int(input()) a, b, c, d = map(int, input().split()) ingre = [list(map(int, input().split())) for _ in range(N)] answer = 999999999999999999999 tmp = [] result = [] recur(0, 0, 0, 0, 0, 0) if answer == 999999999999999999999: print(-1) print() else: print(answer) print(*result)강의에서 작성해주신 기본 코드 기반으로 완성해보았는데, 계속해서 99%에서 틀렸습니다라고 뜹니다..!알고리즘 로직상 이상이 없어보이는데, 제가 놓쳐서 고쳐야할 부분 알려주심 감사하겠습니다..!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3 - e 메모리 초과
http://boj.kr/f71714ff83054faba0d0ae7392f76c1b해당 코드가 메모리 초과가 납니다. 그 이유를 알 수 있을까요?
-
미해결김영한의 실전 자바 - 중급 2편
printV2의 와일드카드 사용법
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]static public void printV2(Shuttle<? extends BioUnit> shuttle) {BioUnit unit = shuttle.out();System.out.println("이름 : " + unit.getName() + ", HP:" + unit.getHp());}위 printV2 메서드의 파라미터의 타입을 굳이 상한조정해야하는이유가 있나요? static public void printV2(Shuttle<?> shuttle) {...}위처럼 상한을 조정하지 않아도 Shuttle자체에서 상한을 조정하고 있기 때문에 무조건 BioUnit이 들어올수밖에없다고 생각돼서요!public class Shuttle<T extends BioUnit> {...}
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-H 질문 있습니다 !
최대한 혼자 해보려고 했는데 자꾸만 오답이 나오네요..예제는 정답이 나오는데 제출하면 틀립니다ㅠㅠhttps://www.acmicpc.net/source/81254291코드좀 봐주실수 있으신가요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-B 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.이 부분이 이해가 되질 않습니다.HHT인 경우 '001'이 되어야 하지만, value가 1부터 *2로 증가해서 HHT에 해당하는 값을 저장할 때, a[i] | value (=4)에 의해 '100'이 저장되지 않나요??비트의 순서가 뒤집힌거 같은데 상관없나요? +위에 go 함수에서 if(a[j] & i)로 비교에 a[j]를 사용하는데, a[j]에 4('HHT'를 저장했을 경우)가 저장되어 있으면 '100' 비교하는데 순서가 뒤집힌거 같아서 헷갈립니다. a[j]에 저장되어 있는 값으로 나타내는 동전이 어차피 대칭이기 때문에 로직이 통과하는 것인가요?
-
해결됨김영한의 실전 자바 - 중급 2편
스트림 강의?
안녕하세요.이번에 기존 개념을 다시 익히는 것 플러스로 stream에 대한 개념까지 배울수있을까 싶어 일단 강의수강신청을 하게 되었습니다ㅎ..혹시 stream에 관련된 내용이 어떤 강의에 있는지 문의드립니다.없다면 출시 생각이 있으신지 궁금하네요 ㅠㅜ..
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
선생님 제발 한 번만 도와주세요
public class Main { public static int solution(int N, int[][] numberList){ int answer = 0; int max = 0; for (int i = 0; i < N; i ++){ int cnt = 0; for (int j = 0; j < N; j ++){ for (int k = 0; k < 5; k ++){ if (numberList[i][k] == numberList[j][k]){ cnt++; break; } } } if (cnt > max){ max = cnt; answer = i + 1; } } return answer; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int [][] numberList = new int[N][5]; for (int i = 0; i < N; i++) { String input = br.readLine(); String[] numberStrings = input.split(" "); for (int j = 0; j < N; j++){ numberList[i][j] = Integer.parseInt(numberStrings[j]); // 입력부분은 잘 됨. } } System.out.print(solution(N, numberList)); } }선생님 코드와 다른 부분은 int [][] numberList = new int[N][5]; 이 부분과 for문의 시작값을 0으로 시작한다는 것입니다. 그치만 오답이 뜨네요.... 뭔가 놓치고 있는 게 있을까요??
-
해결됨자바 코딩테스트 - it 대기업 유제
예제 3번의 정답이 이해가 되지 않아요 선생님 ㅜㅜ
안녕하세요 선생님.초급강의부터 강의 잘 듣고있는 학생입니다. 선생님 덕분에 22년도에 취업 성공했어요^^ 감사합니다.다름이아니라.. 세 번째 예제에서 nums가 [2,0,0,0,0,2]일 때, 양 끝에 하나씩 스프링쿨러를 설치하면 모든 범위가 커버되는 게 아닌가요..? ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-F 질문입니다 :) '0'을 빼주는 이유를 잘 모르겠습니다.
안녕하세요 선생님 🙂문제 풀이 중 이해가 되지 않는 부분이 있어서 질문드립니다.선생님께서는 입력받은 문자열 중 숫자는 vector<int> num에, 연산자는 vector<char> oper에 저장하셨는데요, 숫자 저장 방식이 이해가 되지 않습니다.for (int i = 0; i < N; i++)if (i % 2 == 0) num.push_back(s[i] - '0');여기서 숫자를 vector에 넣을 때마다 '0'을 빼는 이유가 무엇인지 잘 모르겠습니다 ㅠㅠ문자열에서 마지막 공백 문자열('\0')을 빼야 하는 것은 알고 있지만, 이건 공백 문자열도 아닐 뿐더러 push_back마다 빼주는게 이해가 되질 않습니다.추가로, go함수 안에서if (here + 2 <= num.size() - 1)에서 이 경우를 왜 here + 2로 하는지 설명해주시면 감사하겠습니다..!!