묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-L 1987 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/7cda610bf53f47c1a737bb078ccc36b5 안녕하세요 큰돌님. 예제 뿐만 아니라 반례들도 모두 맞는것 같은데 채점을 하면 퍼센트도 안뜨고 바로 틀렸다고 뜹니다.. 어떤 부분이 틀렸는지 모르겠습니다. 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-L 질문 있습니다
이해하고 있는 단계입니다.cin >> y1 >> x1 >> y2 >> x2; 부분이 이해가 잘 가질 않습니다.cin >> x1 >> y1 >> x2 >> y2; 로 입력을 받아야 맞는 것이 아닌가요? 이게 오답인 이유를 잘 모르겠습니다..
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 질문이 있습니다.
팰린드롬의 앞부분 + 중앙 + 뒷부분 을 출력하는 코드를 만들었습니다.https://www.acmicpc.net/source/76353773vs에서 볼때는 반례가 없어보이는데 백준에서는 오답이라고 나옵니다. 어디가 잘못된걸까요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
혼자 푼 것 코드리뷰 부탁드립니다!
// 한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리 function solution(str = "", char = "") { let answer = []; let count = 0; for (let i = 0; i < str.length; i++) { if (str[i] === char) { count = 0; answer.push(count); } else { count++; answer.push(count); } } count = 1; for (let i = answer.length - 1; i >= 0; i--) { if (i > 0 && answer[i - 1] > count) { answer[i - 1] = count; count++; } else { count = 1; } } return answer; } console.log(solution("teachermode", "e")); // 1 0 1 2 1 0 1 2 2 1 0혹시나 반례나 수정할 곳 있으면 조언 부탁드려요!
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
Array 12) 멘토링 문제 짝 클래스 객체와 Map을 활용하는 풀이방식
public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int[][] arr = new int[m][n]; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { arr[i][j] = sc.nextInt(); } } System.out.println(answer(n, m, arr)); } static class Pair { int mento; int menti; @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Pair)) return false; Pair pair = (Pair) o; return mento == pair.mento && menti == pair.menti; } @Override public int hashCode() { return Objects.hash(mento, menti); } } private static int refactor(int n, int m, int[][] arr) { Map<Pair, Integer> map = new HashMap<>(); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { for (int k = j+1; k < n; k++) { Pair pair = new Pair(); pair.mento = arr[i][j]; pair.menti = arr[i][k]; map.put(pair, map.getOrDefault(pair, 1) + 1); } } } return (int) map.entrySet().stream().filter(entry -> entry.getValue() == m).count();; } }저는 위와 같이 짝에 부합하는 값들을 클래스를 통해 객체에 짝을 저장하고, 각 시험별 동일한 짝(객체)에 대한 중복을 제거함과 동시에 count값을 증가시키며 Map에 저장하는 방식으로 문제를 풀었습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
이해한게 맞는지 궁금해요!
결국 idx번째 비트를 끄려면, idx번째 비트만 꺼져있는 수와 and 연산을 한다라고 이해하면 될까요?그리고 idx번째 비트만 꺼져있는 수를 만들기 위해서는 idx번째 비트만 켜져있는 수를 만들고 ~연산을 통해 비트를 반전시킨다라고 이해했습니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
answer 변수 없이 풀기
function solution(n) { if (n == 0) return ""; return solution(Math.floor(n / 2)) + String(n % 2); }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-G 코드 질문 드립니다.
http://boj.kr/8f2c3b1fb5d5432fadeb0831025ed653 해당 코드로는 테스트케이스가 잘 작동하는데 어떤 부분을 놓친것 인지 궁금합니다 감사합니다 :)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-W 줄서기
안녕하세요. 큰돌 강사님, 해설이 이해가 되지 않아서 질문 드립니다. 역사 문제와 이 문제의 풀이 방법이 왜 다른 건지 궁금합니다. 역사문제의 경우 플로이드 워셜로 풀었었는데, 사건들의 전후 관계를 알고 있으니 ,역사 문제도 현재 풀이처럼 v[a]++, v[b]--; 로 풀면 안되나요?? 아래 코드가 전혀 이해가 되지 않습니다.. 앞에 있는 학생의 점수를 키우고, 뒤에 있는 학생은 줄이면 어떻게 1~N까지 카드 숫자를 나눠 갖나요??for (int i = 0; i < m; i++) { cin >> a >> b; v[a]++, v[b]--; } for (int i = 1; i <= n; i++) { v[i] += i; visited[v[i]]++; } 감사합니다 좋은 하루 보내세요
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 풀어도 될까요...?
function solution(n = 0, arr = []) { let answer = []; const sortedArr = [...arr].sort((a, b) => b - a); answer = arr.map((val) => sortedArr.indexOf(val) + 1); return answer; } console.log(solution(5, [76, 92, 92, 100, 76])); // 4 2 2 1 4 막 2중 for문을 돌릴지, 돌리게 된다면 동일 점수 사람끼리 같은 등수를 해주는 조건문 이것저것 생각하다가 이렇게 한번 작성해서 돌려봤는데 여러 케이스에 부합하는 것 같아서 여쭤봅니다!
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
k번째 수 문제 자체를 이해를 못하겠습니다.
문제가 무슨 말을 하는지 이해를 못하겠어요.다른분들은 어렵지 않게 이해를 하시는거 같은데, 코딩테스트 연습 - K번째수 | 프로그래머스 스쿨 (programmers.co.kr)이거랑 같은거 같은데,이거는 이해가 되거든요?근데, 지금 저 두번째 강의문제는 뭘 구하라는건지이해를 못하겠어요... 숫자배열은 어디있고, 범위를 지정하는 start end랑 k번째수가도대체 입력예제에서 어디 부분을 말하는거죠???
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-O 질문있습니다!
안녕하세요 큰돌님.강의를 수강하면서 질문이 있습니다.제가 몇시간동안 고민한 게 단 한 줄 추가로 시간초과 해결이 됬는데, 실전에서 이런 문제들을 만나면 과연 어떻게 해야할지 고민이 생기네요... 무작정 암기하는 방식은 공부가 아니라고 생각하는데 이런 문제들을 보면 또 암기가 맞다고 생각하게 되네요.큰돌님은 어떻게 생각하시는지 또 어떻게 공부 방향을 잡아야하는지 궁금합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
격자판 최대합 테스트케이스 문제 있습니다.
반대 누적합에 대한 테스트케이스 예외가 없는거 같아요.public static void main(String[] args) { Scanner sc = new Scanner(System.in); int length = sc.nextInt(); int[][] intArr = new int[length][length]; for (int i = 0; i < length; i++) { for (int j = 0; j < length; j++) { intArr[i][j] = sc.nextInt(); } } System.out.println(answer(length, intArr)); } private static int answer(int length, int[][] intArr) { /* 대각선 누적합, 최대값 */ int xXSum = 0, xYSum = 0, max = 0; for (int i = 0; i < length; i++) { /* 행, 열 누적합 */ int rowSum = 0, colSum = 0; for (int j = 0; j < length; j++) { /* 각 행의 누적합 저장*/ rowSum += intArr[i][j]; /* 각 열의 누적합 저장*/ colSum += intArr[j][i]; } if (rowSum > max) max = rowSum; if (colSum > max) max = colSum; /* 대각선의 누적 합 저장*/ xXSum += intArr[i][i]; xYSum += intArr[length-1-i][length-1-i]; } /* 대각선 의 합 추가*/ if (xXSum > max) max = xXSum; if (xYSum > max) max = xYSum; return max; } }반대 대각선을 코드는 위 코드에서 바로 아래와 같습니다.xYSum += intArr[length-1-i][length-1-i];위에가 잘못 적용한 코드이고 (바로 위의 정대각선과 똑같은 작업을 하는것과 마찬가지입니다.)이것을 코딩채점사이트 상에 직접 돌려보면 정답으로 인정되지만 31 1 31 3 13 1 1이렇게 데이터 직접 넣어보면 9가 아닌 5가 최대값으로 출력됩니다.즉, 코딩채점에 반대 대각선에 대한 테스트케이스가 없다는 소리에요.xYSum += intArr[i][length-1-i];위 코드가 정답이고, 이렇게 했을때에는 처리가 되긴 되는데아무튼 현재 테스트케이스 상에 반대 대각선에 대한 누적합이 더 큰 경우가 없어서 처리가 안되고있습니다.그냥 반대 대각선 누적합 자체가 없는셈 치는거나 마찬가지에요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문있습니다.
http://boj.kr/efd11008ccc14646a364953dfec3e77c 가장자리의 얼음을 녹인다.백조끼리 이어져있는지 확인한다.이 두 가지 동작을 while로 돌리고 싶었는데 어느 부분이 틀렸는지 모르겠습니다...도와주세요
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
질문 있습니다
#include <iostream> #include <vector> #include <algorithm> using namespace std; int n; int maximum=-2147000000; vector<pair<int, int>> A; void DFS(int day, int now_day, int income); int main(){ cin >> n; for(int i=1; i<=n; i++){ int a, b; cin >> a >> b; A.push_back(make_pair(a, b)); } for(int i=1; i<=A.size(); i++){ DFS(A[i].first, i, 0); } cout << maximum; } void DFS(int day, int now_day, int income){ if(day>n){ if(income>maximum) maximum=income; return; } else if(day==n){ income+=A[now_day].second; if(income>maximum) maximum=income; return; } else{ income+=A[now_day].second; for(int i=day+1; i<=n; i++){ DFS(day+A[i].first, i, income); } } }해당 코드로는 알맞는 정답이 출력되지 않는데, 그 이유를 모르겠습니ㅏㄷ.
-
미해결더 개발자, 인터뷰 가이드
오타 제보합니다.
백기선님, 안녕하세요?제작해주신 강의들을 잘 보고 있습니다. "더 개발자, 인터뷰 가이드" > 4부 : 핵심 역량 파트 소개 > "6가지 주요 소프트 스킬"에서,(https://www.inflearn.com/course/lecture?courseSlug=개발자-인터뷰&unitId=61845)"Cusomer Focus"라고 작성하신 부분이 있습니다.https://www.microsoft.com/en-us/research/group/customer-insights-research/articles/driving-a-customer-driven-mindset-in-a-tech-organization/를 봤을 때, "Customer Focus"인 것으로 생각됩니다. 어쩌면 사소한 부분일 수도 있는데요...혹시, 오타 제보로 불편하셨다면 죄송합니다. 저는 계속 백기선님이 남기신 발자국들을 따라 가겠습니다.감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알파벳 질문 있습니다.
http://boj.kr/b5d1bbdb6ec041f3aa76727fa518e4d3 str을 초기화시키는 시점과, str을 누적시키는 방법이 잘못된 거 같은데도무지 고치질 못하겠어요 .. 도와주세요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-C 접근 방식 질문 있습니다.!
안녕하세요 큰돌님!http://boj.kr/01de00905c874d749fef7bbf7313fc02큰돌님의 풀이 방식이랑 조금 다른 방식으로 했는데요.완탐 + dp을 생각해서 풀어봤는데 테스트케이스도 실패하고 어디가 문제인지 잘 감이 안잡히네요...혹시 제 코드 봐주실수 있나요?제 접근 자체가 잘못된거면 그냥 깔끔하게 접게요....풀릴꺼 같은데 안풀리니깐 미련이 자꾸 남습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
16637번 질문
해당 문제에서 "3*8+5" 를 예시로 들어가면서 코드까지 옮기는 내용으로 수업을 해주셨습니다. 이 경우 당연하게 최대 1개 쌍의 괄호가 들어갈 수 있는 경우의 수가 2개이므로 수긍은 되었습니다.하지만, 제가 생각하기에 최대 수식의 길이가 19이므로 그 경우의 괄호는 상당히 많아질텐데 현재의 2개의 경우의 수를 고려하는 코드로도 커버가 되는 건가요? 재귀 형태라서 그렇다기에는 이해가 잘 안 갑니다..길이가 11인 예시 "3+5-8*1*4+2" 만 해도(3+5)-(8*1)*(4+2)로 최대 괄호의 수(쌍)가 3개짜리인 경우의 수가 상당히 많아질 수 있는데 현재의 코드가 어떻게 되는건지 모르겠습니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
그대로 입력했는데 틀렸다고 뜹니다.
#include <bits/stdc++.h> using namespace std; int n, cnt[26]; string s, ret; int main(){ cin >> n ; fot(int i=0; i<n; i++){ cin >> s ; cnt[s[0] - 'a']++; } for(int j = 0; j < 26; j++){ if (cnt[j] >= 5) ret += j + "a"; } if(ret.size()) cout << ret << "\n"; else cout << "PREDAJA" << "\n"; } 어디가 틀린걸까요