묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
숙제 코드 리뷰 부탁드립니다.
이전 문제와 비슷하게 graph 인접리스트를 이용하고, ch 배열을 사용해여 이미 방문한 곳을 체크했습니다.import java.util.*; import java.io.*; class Main { static int answer = 0; static ArrayList<ArrayList<Integer>> graph; static int n, m; static int[] dis, ch; public static void bfs(int v) { Queue<Integer> Q = new LinkedList<>(); Q.offer(v); int L = 0; while (!Q.isEmpty()) { int len = Q.size(); for (int i = 0; i < len; i++) { int cur = Q.poll(); dis[cur] = L; for (int nv : graph.get(cur)) { if (ch[nv] == 0) { ch[nv] = 1; Q.offer(nv); } } } L++; } } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = null; st = new StringTokenizer(br.readLine()); n = Integer.parseInt(st.nextToken()); m = Integer.parseInt(st.nextToken()); graph = new ArrayList<>(); for (int i = 0; i <= n; i++) { graph.add(new ArrayList<>()); } for (int i = 0; i < m; i++) { st = new StringTokenizer(br.readLine()); int a = Integer.parseInt(st.nextToken()); int b = Integer.parseInt(st.nextToken()); graph.get(a).add(b); } ch = new int[n + 1]; dis = new int[n + 1]; ch[1] = 1; bfs(1); for (int i = 2; i <= n; i++) { System.out.println(i + " : " + dis[i]); } } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-L 2852 NBA 문제 질문 드립니다.
선생님 안녕하세요.2-L NBA 문제 C++로 작성한 코드입니다.https://www.acmicpc.net/source/54522381맞게 푼 것 같다고 생각하는데 틀렸다고 나오네요제가 어떤 것을 놓쳤을까요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
exit_code1 오류코드
안녕하세요후위연산 채점 프로그램을 돌리면 exit_code1 오류코드가 나옵니다. 이 오류가 뭔지 알 수 있을까요?직접 int1~5까지 돌려을때는 정답 일치 하는데 프로그램 돌리면 exit_code1가 뜹니다.그나마 의심가는게 eval같은데 혹시 eval함수는 사용하면 안되나요?코드 첨부합니다. import sys #채점할떄는 주석 #sys.stdin=open('코딩테스트\input.txt','rt') n=sys.stdin.readline() stack=[] for i in n: if i.isdigit(): stack.append(int(i)) elif not i.isdigit(): b=stack.pop() a=stack.pop() stack.append(eval(f'{a}{i}{b}')) print(stack[0])
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요! 질문 있습니다!
좋은 강의 감사드립니다!헷갈려서 질문드립니다!해당 강의에서 소개해주시는 next_permutation과 makePermutation은 nPr을 구하는 식에서 n과 r의 값이 같은 경우에만 사용할 수 있는게 맞을까요?n = 3, r = 3인 경우에만 사용할 수 있는 것인지, n = 3, r = 2에서도 사용할 수 있는 것인지 궁금합니다. makePermutation()에서는 vector의 값과 r의 값을 변경해가면서 해봤는데 제가 생각하는 것처럼 동작하지 않아서 질문드립니다! 감사합니다!
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
함수 질문입니다!
강사님 강의가 너무 도움이 많이 됩니다. 감사합니다!구글 검색을 해도 잘 모르는 부분이라 이렇게 질문을 남깁니다.if __name__== ~~max_h=0 ;이렇게 1번 같은 구문으로 시작점을 알린다는 건 알겠는데 이걸 임포트 구문 다음에 바로쓰면 되는게 아닌가요? 어떤 상황에서 사용하는지 잘 모르겠습니다. 2번은 파이썬에서 ; 세미콜론은 굳이 사용하지 않는다고 배웠는데 왜 사용하신건지 궁금합니다! 명절 잘 보내세요!! 감사합니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
격자판 회문수 풀이
a=[list(map(int, input().split())) for _ in range(7)] res=0 def check(a): res=0 for i in range(3): temp=a[i:i+5] temp.reverse() if temp==a[i:i+5]: res+=1 else: res+=0 return res for i in range(7): temp=list([0]*7) temp2=list([0]*7) for j in range(7): temp[j]=a[i][j] temp2[j]=a[j][i] res+=check(temp) res+=check(temp2) print(res) 이렇게 풀어도 괜찮을까요??
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
효율성
안녕하세요 저는 정렬을 사용하지 않고 min,max를 이용해서 풀었는데 정렬로 푸는게 더 효율적일까요?코드 첨부합니다.while squre: if len(squre)==1: boat+=1 break if max(squre)+min(squre)>m: squre.remove(max(squre)) boat+=1 else: squre.remove(max(squre)) squre.remove(min(squre)) boat+=1
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
시간복잡도 O(2^N)인거는 상관없나요?
문제보면 배열 원소 크기 제한이 백만개 이하던데O(2^N)로는 너무 오래 걸리는 풀이 같아요.일단 지금은 DFS를 연습하는 정도로만 받아들이면 될까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-M 질문
if(stk.size()&&stk.top()==a)부분이 이해가 안가는데cin에 ABBABBAA를 입력하면 범위기반 for문을 통해 a가 ABBABBAA가 되어야한다고 생각하고stk.top()도 가장 마지막걸 참조하는거니까 제일 나중에 입력된 A가 참조되어야 한다고 생각하는데왜 cout으로 찍어봤을때 B가 나오는지 이해를 못하겠습니다..if(stk.size()&&stk.top()==a)이게 스택의 사이즈가 존재하면서 가장 마지막 스택이 a와 일치한다 라는건 알겠는데막상 찍어보면 왜 저런 결과가 나오는지도 모르겠습니다..강의도 돌려보고 교안도 계속보면서 cout 위치 바꿔가면서 찍어보는데 모르겠습니다.. 수정) for문이 끝나는게 아니고 중괄호로 if랑 이어져서알파벳 하나씩 독립적으로 적용해야 하는 사실을 깨달았습니다.그러면 차근차근 쌓이면서 붕괴된다는것을 이해했습니다.그러면 로직의 가장 처음에 A가 먼저 쌓일테니까 stk.top()이 A이고a는 ABBABBAA에서 가장 처음에 A를 데려오니까 붕괴된다라고 이해하기엔또 cout으로 B가 제일 먼저 찍히는데 진짜 이해를 못하겠습니다그냥 단순하게 B가 있는 상황에서 B가 들어오면 붕괴되는거 이해했는데이걸 코드로 바꾸면 왜 stk.top()==a인지 잘 모르겠어요..그걸 코드로 바꿨을때 a의 입장이 어떻게 변하는지 모르겠습니다a의 입장에서 로직이 어떻게 진행되는지 알려주세요 ㅠㅠ 수정) 처음에 size가 0이니까 A가 1층에 push되고A가 top인 상황에서 B가 입력되는데 A랑 B랑 다르니까 그 다음 B가 push되고이제 B가 top인 상태에서 B가 들어오려고 하는데 여기서 top==a가 되면서소거 되는게 맞나요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
자바스크립트 추가 강의
안녕하세요 강사님이 진행중이신 python이나 c++ 강의보다 javascript로 된 강의가 전체적으로 문제가 적은 것 같더라고요. 혹시 추후에 다른 강의들에 있는 내용을 javascript로 올려주실 계획이 있으신가해서 여쭤봅니다. 특히 추가적인 DFS, BFS에 해당되는 문제들이 있었으면 좋겠습니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
처음으로 혼자 풀었어요 + 질문
http://boj.kr/1b020a2dc9ba4a3a9350e79277dcd361C문법만 배우고 바로 알고리즘 뛰어들었는데1-A부터 1-K까지 혼자서 100%풀어본 적이 한 번도 없었어요..로직은 혼자서 어느정도 구성한다 해도 스스로 조립을 못하는 경우도 많았고로직 자체도 집중하면서 30분넘게 생각해도 이상하게 설계하는 것도 많았는데..드디어 강의 보기전에 혼자서 완성을 시켰네요 ㅠㅠ 질문)교안에 있는거 다 이해는 했지만 주로 사용하는게 아니면 자꾸 까먹거나 응용을 못하는데그냥 문제에 나왔을 때 복습하면 안될까요? 교안을 100% 외워서 문제에 바로 적용시키는건 저한텐 너무 어려운 공부방법인것 같아요ㅠㅠ예를 들어 강의 듣기 전 로직을 설계할 때 여기선 map을 쓰면 될거같은데 map에 key가 앞인지 value가 앞인지 헷갈린다 싶을 때 복습하는 방식으로요!이렇게 해도 괜찮을까요?
-
해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
백준 10815번 list와 set차이
안녕하세요, 선생님항상 강의 잘 듣고 있습니다. https://www.acmicpc.net/problem/10815 제가 백준을 푸는데, 이 10815번 문제가 list로 찾으면 시간 초과가 뜨고, set으로 바꿔서 찾으면 시간 초과가 안뜨더라고요..set이 순서가 없고, 중복이 안된다는것은 알고있습니다.하지만 왜 set으로 바꿔서 속도가 빨라지는건지 궁금합니다. list를 사용한 코드 - 시간 초과N = int(input()) a = list(map(int, input().split())) M = int(input()) b = list(map(int, input().split())) for i in b: if i in a: print(1) else: print(0) set을 사용한 코드N = int(input()) a = set(map(int, input().split())) M = int(input()) b = set(map(int, input().split())) for i in b: if i in a: print(1) else: print(0) 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-C 제가 처음 풀었던 방식입니다
http://boj.kr/52e2462c48d9428b8fed65ba1be10f27먼저 문제보고 혼자 풀어본 후에 큰돌님꺼 보는식으로 공부하고 있습니다bfs 이용해서 테스트케이스 모두 통과했었는데 4%에서 틀렸다고 뜨네용..혹시 반례나 제가 놓치고 있는 부분이 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.고민하다가 이렇게 하면 될 거 같아서 해봤는데, 런타임 에러가 발생합니다. 논리만 보면, 강사님이랑 비슷한 거 같은데, 완전 잘못간것일까요??http://boj.kr/34380871ba87499d9065179a1e49a024
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 일곱난쟁이 질문입니다
안녕하세요.2309 - 일곱난쟁이 관련 질문입니다.조합 풀이인데, 진짜 똑같이 친것 같은데 왜 틀렸다고 하는지 잘 모르겠습니다.http://boj.kr/ab49141d52e34dbd8685e72b2dddc31e감사합니다. 어렵네요 ㅠ