묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
M1 brew 설치
안녕하세요 큰돌님 프로그램 설치관련 질문드립니다ㅠbrew 설치 중에 이 부분에서 계속 막히는데 도움 주시면 감사하겠습니다ㅠ
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
추가로 공부하면 좋은 알고리즘 관련
안녕하세여! 추가로 공부하면 좋은 알고리즘 비트-마스킹, 위상 정렬 등은 말씀주신 기준에 따르면 코테가 어려운 대기업에 붙으려면 해야하는 사항일까요?? 추가로 공부하면 좋은 알고리즘 관련해서 혹시 백준에서 어떤 문제들을 풀면 좋을지 추천 문제 리스트만이라도 노션에 올려주실 수 있으실까요..? 🙇🏻♂️
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 리뷰 부탁드립니다
이 코드 예외 사항 없을까요?const solution = (str) => { let answer = 'YES' let arr = [str[0]] for (let i = 1; i < str.length; i++) { if (str[i] === arr[arr.length - 1] || arr.length === 0) { arr.push(str[i]) } else { arr.pop() } } if (arr.length !== 0) answer = 'NO' return answer } console.log(solution('()))'))
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-B 질문
2-B 질문코드를 작성하고 정답 코드도 비교해보고 했는데 같은 것 같은데 왜 틀렸다고 뜨는지 잘 모르겠습니다. 2-Bhttps://www.acmicpc.net/source/82329714
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-M 12100 2048 (easy) 질문
안녕하세요 큰돌님 강의 잘 듣고 있습니다! 다름이 아니라 구조체로 하지 않고 할 수 있을 것 같아서 다음과 같이 했는데 주석에 있는 반례에 직면하게 되어 왜 이러한 잘못된 결과가 나오는 지 궁금합니다. #include<iostream> #include<algorithm> #include<string.h> #include<vector> #include<map> #include<queue> #include<math.h> #include<stack> using namespace std; int N; int sum = 0; void print(int board[41][41]) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { cout << board[i][j] << " "; } cout << "\n"; } cout << "\n"; } void rotate(int board[41][41]) { int temp[41][41] = { 0 }; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { temp[i][j] = board[N - 1 - j][i]; } } memcpy(board, temp, sizeof(temp)); } void slide(int board[41][41]) { int temp[41][41] = { 0 }; for (int i = 0; i < N; i++) { int cnt = 0; for (int j = 0; j < N; j++) { if (board[i][j] == 0) continue; if (cnt == 0) { temp[i][cnt] = board[i][j]; cnt++; } else { if (temp[i][cnt - 1] == board[i][j]) { temp[i][cnt - 1] = board[i][j] * 2; } else { temp[i][cnt] = board[i][j]; cnt++; } } } } memcpy(board, temp, sizeof(temp)); } void counting(int board[41][41]) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { sum = max(sum, board[i][j]); } } } void game(int here, int board[41][41]) { if (here == 5) { counting(board); //print(board); return; } for (int i = 0; i < 4; i++) { int cpy[41][41] = { 0 }; memcpy(cpy, board, sizeof(cpy)); slide(cpy); game(here + 1, cpy); rotate(board); } return; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int board[41][41] = { 0 }; cin >> N; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { cin >> board[i][j]; } } game(0, board); cout << sum; } /* 4 2 4 16 8 8 4 0 0 16 8 2 0 2 8 2 0 답 32 */
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
graph 만들때 boolean[][] 으로 만드는 경우랑 int[][] 나 ArrayList<Integer>[] 로 만드는 기준이 어떻게 되나요?
강의 영상마다 질문이 있으면 언제든 그리고 바로 질문 남겨주세요! 질문할 때 가장 정확하게 이해할 수 있습니다.해당 영상과 관련된 질문들을 해주실 때 제가 가장 정확히 답변 드릴 수 있습니다!취업 전반의 상담이나, "제 코드가 왜 틀렸는지 알려주세요"와 같이 광범위한 질문은, 질문자의 상황에 따라 답변이 달라질 수 있기 때문에, 정확한 답변을 드리기가 어렵습니다 :(이런 분들을 위해서는 멘토링 항목으로 별도 제공하고 있으니, 다음 링크를 참고해주세요!이 링크를 통해서는 본인의 코드가 왜 틀렸는지 모를 때 질문을 주셔도 좋고, 취업 전반(면접 준비, 자소서, CS 면접 등)에 관련한 질문을 주시면 답변 드리겠습니다 :)"이 질문은 해도 되나?"라는 생각이 드신다면 우선 남겨주세요! 제가 답변 드리기 어려운 건 멘토링에 올려 달라고 재요청 드리겠습니다 🙂 graph 만들때 boolean[][] 으로 만드는 경우랑 int[][] 나 ArrayList<Integer>[] 로 만드는 기준이 어떻게 되나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-E 질문있습니다! 무엇이 문제일까요??
큰돌님 안녕하세요.강의 정말 재밌게 잘 시청하며 공부하고있습니다.👍2-E 문제를 위의 코드로 시도를 하고 있습니다.계속 처음부터 틀렸다는 답이 나와서 질문드립니다. 문제의 반례로 정답을 확인했음에도 틀렸다고나오고, 문제의 질문게시판의 여러 반례를 확인했는데도 틀렸다고 나옵니다.출력 String사이에 다른 char가 있을까봐 저의 출력용 전역변수인 _ret 의 내부 값들을 하나하나 확인했는데도 실제 정답과 동일함을 확인했습니다. 무엇이 문제일까요.. ㅠㅠ그리고 제가 무언가 잘못집고있다면 강의교안에서 어떤것을 봐야할까요..? (정답과 강의를 보기전에 문제를 풀어보느라 코드가 매우 지저분한점 양해부탁드립니다...)문제 URL: 1992번: 쿼드트리 (acmicpc.net)코드 URL: http://boj.kr/b720b19e7fde44a093809570d702a3c9참고한 TestCase- 문제에서 제공하는 기본 TestCase- 글 읽기 - 반례공유 (acmicpc.net)- 글 읽기 - << 테스트 케이스 공유 >> (acmicpc.net)- 글 읽기 - [1992번] 틀린 부분, 반례 부탁드립니다ㅠㅠ (acmicpc.net)
-
해결됨코딩테스트 [ ALL IN ONE ]
unique paths 코드 시간복잡도에 관련해서 궁금한 것이 있습니다.
우선 강사님께서 풀어주신 top-down 코드는 다음과 같습니다.class Solution(object): def uniquePaths(self, m, n): memo = {} def dfs(r, c): if (r, c) == (0, 0): # 출발점에 도달한 경우 return 1 if (r, c) not in memo: # 메모이제이션에 값이 없는 경우 계산 paths = 0 if r - 1 >= 0: # 위쪽 셀에서 오는 경우 paths += dfs(r - 1, c) if c - 1 >= 0: # 왼쪽 셀에서 오는 경우 paths += dfs(r, c - 1) memo[(r, c)] = paths # 결과 저장 return memo[(r, c)] # 결과 반환 return dfs(m - 1, n - 1)이 코드는 grid에 해당하는 함수만 호출하고, 중복되는 호출은 memo에 저장하기 때문에 총 O(M*N)이 됩니다. 다음은, 디스코드의 다른 사람이 올려주신 코드를 참고해서 조합론을 적용한 코드입니다.class Solution(object): def uniquePaths(self, m, n): memo = {} def fact(x): if x <= 1: return 1 if x not in memo: memo[x] = fact(x - 1) * x # factorial의 결과값을 메모리에 저장 return memo[x] return fact(m + n - 2) / (fact(m - 1) * fact(n - 1)) # fact(m + n - 2) 부분만 호출하고, 분모는 캐싱하므로 시간복잡도는 O(M+N)분자에 해당하는 부분만 함수를 호출하기 때문에 시간복잡도는 O(M+N)이 됩니다. 우선 제가 궁금한 것은 2가지입니다.1) 위의 두 코드를 비교했을 때, 수학적으로 접근한 코드가 시간복잡도가 더 낮은데요 항상 dfs, bfs를 먼저 쓰는게 좋은 것은 아닌가요?2) 강의에서는 조합론을 이용한 방법이 198C99 = 약 2*10^58이여서 완전탐색은 안된다고 하셨는데, 실제로 제출했을 때는 제출이 됬습니다. 왜 이런 차이가 발생한건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
조합->이분탐색
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 조합이 아닌 이분탐색처럼 풀이해보게 되었는데요 이 경우가 배열을 앞뒤로 한 번만 읽으면 되니까 O(n)으로 시간복잡도 차원에서 더 효율적인지 궁금합니다.#include <bits/stdc++.h> using namespace std; //1940 - 주몽 int n,m,input,cnt; vector<int> v; int main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); cin>>n>>m; for(int i=0;i<n;i++){ cin>>input; v.push_back(input); } sort(v.begin(),v.end()); int left =0, right = n-1; while(left<right){ int sum=v[left]+v[right]; if(sum==m){ cnt++; left++; right--; } else if(sum<m) left++; else right--; } cout<<cnt<<'\n'; return 0; }ㅇ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-Q 질문있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 큰돌님거의 모든 반례를 넣어봤는데 다 성공했어요. 근데 막상 제출하면 틀렸다고 뜨는데 왜그러는지 잘 모르겠네요 ㅜㅜ반례주시면 감사하겠습니다!http://boj.kr/9ec2d67f80014168b8c8ba09a5c8e8e2
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
백준에서는 recursion error가 납니다
안녕하세요 ! 동일한 코드로 선생님의 채점기에 돌렸을 때는 100점이 나왔는데 백준에서는 recursion 에러가 납니다. 종료조건도 잘 설정해준 것 같은데 어디서 그렇게 호출이 많이 일어나는지 이해가 되지않아서요 ㅠㅠ 강의 잘 듣고 있습니다. 감사합니다!!# 1. 재귀 (근데 백준에서는 recursion 에러 뜸..) n = int(input()) meetings = [] for _ in range(n): meetings.append(list(map(int, input().split()))) meetings.sort(key=lambda x: (x[1], x[0])) # 끝나는 시간을 기준으로 정렬 # x[1]이 같을 경우 x[0]을 기준으로 정렬 def find(i, cnt): for j in range(i+1, n): if meetings[i][1] <= meetings[j][0]: # 회의 끝나는 시간보다 시작하는 시간이 더 크거나 같은 것 찾기 cnt += 1 return find(j, cnt) # 또 찾기 return cnt print(find(0, 1))
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
split() 함수에서 pos변수타입을 long long 으로 선언한 이유
안녕하세요 큰돌님 강의 잘듣고있습니다. 위 사진은 교안에 나온 split함수 예시입니다while 조건문에서 사용되는 find함수는 size_t 타입을 반환한다고 하는데 pos도 이에 맞춰서 size_t라는 타입으로 일치해줘야 하지 않나 하는 궁금증이 생겼습니다. 변수 pos를 size_t로 받지않고 longlong으로 받으시는 이유가있는걸까요?
-
미해결김영한의 실전 자바 - 중급 2편
Hashset 자료구조에 대해서 질문 있습니다!
김영한 멘토님 안녕하세요 강의를 듣다가 질문이 있어서 질문 남깁니다!HashSet 자료구조를 사용해 객체를 저장할때, HashCode와 equals를 재정의 해야한다고 말씀해 주셨는데요. 정말 멘토님 말대로 재정의 하지 않으면 값이 중복되어서 저장되었습니다. 근데 궁금한것은 HashSet 자료구조이기에 HashCode를 사용하는것은 아는데, 그 이전에 자료구조가 Set의 기반의 자료구조인데 Set은 원래도 중복된 값을 허용하지 않는걸로 알고있습니다. 근데 왜 HashCode를 재정의해야 그때서야 값이 중복되어서 저장되지 않는것인가요? 애초에도 Set 기반의 자료구조인데 말입니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
시간초과 질문있습니다!
안녕하세요 시간초과가 나서 질문 드립니다 http://boj.kr/fc46d18e98374d0eb3e7ae35da228024unorder map이 해시 맵이라 O(1)의 시간 복잡도를 갖는 걸로 알고 있는데 왜 시간 초과가 나는지 모르겠습니다...혹시 해시 충돌이 나서 그런걸까요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
lt, rt 관련
안녕하세요 선생님, 수업 잘 듣고있습니다 ㅎㅎ다름이 아니라, 섹션 3의 5.수들의 합 문제에서 궁금한 점이 있습니다import syssys.stdin = open("input.txt", 'r')n, m=map(int, input().split())a=list(map(int, input().split()))lt=0rt=1tot=a[0]cnt=0while True: if tot<m: if rt<n: tot+=a[rt] rt+=1 else: break elif tot==m: cnt+=1 tot-=a[lt] lt+=1 else: tot-=a[lt] lt+=1print(cnt) 이 코드에서, 여기서 만약 rt가 맨끝까지 가서 n에갔지만 / lt는 n 이전까지도 못왔다면(예를 들면 lt는 3인데 rt는 n인 경우) 이건 논리에 어긋나지 않나 궁금해서 질문드렷습니다. 항상 좋은강의 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-N 왜 틀렸는지 모르겠습니다. ㅠㅠ
http://boj.kr/3fc3d81f397e4109919a1cce555e5be9안녕하세요. 강사님. 1-N 곱셈 문제를 저는 위의 코드로 풀었는데 왜 틀렸는지 도저히 모르겠어서 이렇게 질문 남깁니다. 한시간동안 고민한거 같은데 도저히 보이지가 않네요. 찾아주시면 정말 감사하겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
풀이법 질문있습니다.
결국 문제는 하나의 경로만 구하라는거니까 종점부터 시작해서 딱 한개의 경로만 추적하는 방법은 어떨까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문있습니다.
http://boj.kr/eb89033f8d5f4568b2b3cdb80ece29da로직은 동일하게 진행했는데 마지막 케이스가 틀렸다고 나옵니다. 어디를 고쳐야할지 모르겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
~연산자 질문있습니다 :)
안녕하세요 선생님 🙂 ~연산자 부분에서 이해가 되지 않는 부분이 있어서 질문드립니다. 양의 정수와 음의 정수 상관없이 ~연산자를 사용하면 -(value + 1)이 되는 것을 확인했습니다. 이건 1의 보수 값인가요 2의 보수 값인가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
균형 이진 트리 질문 있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요균형 이진트리의 경우 모든 노드에서 왼쪽 하위트리와 오른쪽 하위트리의 높이차이가 1이하여야 한다고 이해했습니다. 그러나 이번 영상 5:03초에 아래 그림의 트리구조가 균형 이진트리라고 설명해주셨는데, 제가 빨간색으로 표시한 노드를 기준으로 보았을때왼쪽 하위트리 높이가 0오른쪽 하위트리 높이가 2이기 때문에높이차이가 2나기 때문에 해당 트리 구조가 균형 이진트리가 아니라고 판단하였는데, 제 개념에 오류가 있는것인지 궁금합키다..!