- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/955bf25e27e0461282ecf4b4c29ac300 계속해서 틀렸다고 나와서 질문드립니다@
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/f9a6c24b6e81423a998535d547e4e500 tie(y, x) = q.front(); q.pop(); 부분을 제외하고 강사님 코드랑 거의 유사한데 계속 틀렸다고 나와서 질문드립니다!
안녕하세요 동전교환문제에서 저는 부분집합을 만들고 계산은 마지막에 하는 방식으로 풀어봤습니다. 효율성 방식에서 상태트리로 쭉 나가는 강사님 방식이랑 비교하면 뭐가 더 나은가요? def DFS(L): money= m global minn cnt=0 if L==n: #계산은 여기서 for i in range(0,n): if ch[i]==1: cnt+=(money//p[i]) money%=p[i] if cnt<minn and money==0: minn=cnt else: # 깊이탐색해서 경우의 수 만들기 ch[L]=0 DFS(L+1) ch[L]=1 DFS(L+1)
안녕하세요 선생님 정보 올림피아드같은 대회에서는 gcd같은 함수를 사용할 수 있을까요? 만약 최대공약수를 구하는 문제가 나온다면 gcd를 이용해서 풀어도 되는건가요? 아니면 최대공약수를 구하는 코드를 작성해야 하나요? 그리고, 혹시 파이썬 내장함수 math의 gcd 함수가 작동되는 원리를 알고계신가요?? 감사합니다.
요렇게 하면 시간 복잡도를 줄일 수 있을 것 같아욤. def input_function(line_string: str): n, k = map(int, line_string.split(' ')) half_value: float = n ** 0.5 temp_results: list[int] = [] for value in range(1, int(half_value) + 1): if n % value == 0: temp_results.append(value) final_results: list[int] = [] for i in temp_results: final_results.append(i) for i in temp_results[::-1]: final_results.append( 6 // i) if k > len(final_results): return -1 return final_results[k-1]
선생님 죄송합니다. 링크 수정하여 다시 질문 드립니다. 저는 Input 값을 받을 때, 부모 자식에 대한 꼬리표를 같이 매겨서 부모 = 1 / 자식 = 2 / 루트 = -1 이런 식으로 풀었는데요. 75 % 쯤에서 Fail이 뜨네요 ㅠㅠ 어떤 문제가 있는 걸까요? 코드는 아래 링크에 있습니다 http://boj.kr/457d11f9ac914b61b98f62c5f2a89554 감사합니다
안녕하세요 큰돌님. 알고리즘 교안 관련하여 질문 드립니다. 교재 25p getline() 함수 본문에서 getline을 여러번 써야 되는 상황이 있다며 버퍼플러쉬를 하는 이유를 설명합니다. 하지만 cin 과 getline을 동시에 사용하기 때문에 버퍼플러쉬를 하는 것이지 getline을 여러번 사용하는 것이 쟁점은 아닌 것 같습니다. 큰돌님이 작성하신 코드도 cin이 입력을 받은 후 남은 \n개행 문자를 제거하기 위해 bufferflush를 하신 것으로 보입니다. 짧은 지식으로 생각해본 결과입니다만 같이 생각해보면 좋을 듯 하여 답변 부탁드리겠습니다. https://cplusplus.com/forum/articles/6046/
선생님 안녕하세요. 해당 문제 질문 드립니다. 저는 Input 값을 받을 때, 부모 자식에 대한 꼬리표를 같이 매겨서 부모 = 1 / 자식 = 2 / 루트 = -1 이런 식으로 풀었는데요. 75 % 쯤에서 Fail이 뜨네요 ㅠㅠ 어떤 문제가 있는 걸까요? 코드는 아래 링크에 있습니다. http://boj.kr/457d11f9ac914b61b98f62c5f2a89554
http://boj.kr/4fabcca5f4544fb2b645549a5d93d495 질문1 : 입력을 여러 번 받게 되는데 어떻게 고쳐야 할까요? 질문2 : 첨부한 사진은 예제 입력1을 복붙한 결과입니다. 정답인 15가 아닌 9로 나오는데 어디를 고쳐야 하는지 잘 모르겠습니다.
안녕하세요 선생님ㅠㅠ 제가 푼 코드를 실행시키니 틀렸다고 결과가 나왔는데 아무리 계속 원인을 찾아보고 디버깅도 해봐도 이유를 잘 모르겠습니다ㅠㅠㅜ 반례 중에 어떤 특정한 케이스에서 틀렸다고 판단된 것 같은데 혹시 무엇이 잘못되었는지 짚어주실 수 있으실까요..?? 항상 감사합니다 :) http://boj.kr/34786960e9b84876be27b66b0271ece2
안녕하세요 강의 잘 듣고 있습니다. C++ 강의에서 js 질문을 드려도 될지 싶은데 일단 적어 보겠습니다. (프론트엔드 경력 코테 준비중이라 js 를 고집하고 있는중입니다.) 3-K (백준 3197 - 백조의 호수)를 js 로 포팅 했는데 시간 초과가 발생하네요. 강사님 코드 로직을 그대로 적용 했다고 생각하는데 혹시 제코드에 빠트린게 있을지 궁금합니다. (제 눈에는 안보이네요 ㅠ) 로직이 똑같은거라면 어느부분을 개선 해야될지 조언 좀 부탁드립니다. http://boj.kr/a9a2b9684a774eb3ad7e2efb5baf57d8
이전 문제와 비슷하게 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]); } } }
안녕하세요 후위연산 채점 프로그램을 돌리면 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])
좋은 강의 감사드립니다! 헷갈려서 질문드립니다! 해당 강의에서 소개해주시는 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) 이렇게 풀어도 괜찮을까요??