묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S java 로 정답 맞히신분 계실까요..?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 로직 자체는 강사님이 알려주신 흐름과 동일합니다..언어만 java로 구현한 것일 뿐인데 시간초과를 계속 밷어내요...혹시 자바로 풀어보신 분이 있으시다면.. 어떤 부분이 문제일것 같은지 힌트라도 슬쩍 부탁드립니다..ㅠimport java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { public static ArrayList<Integer>[] graph; public static boolean[] visited; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); String[] input = br.readLine().split(" "); int N = Integer.parseInt(input[0]); int M = Integer.parseInt(input[1]); int[] resArr = new int[N + 1]; visited = new boolean[N + 1]; graph = new ArrayList[N + 1]; int mx = -99; for(int i = 1; i <= N ; i++) graph[i] = new ArrayList<>(); for(int i = 0; i < M; i++) { StringTokenizer st = new StringTokenizer(br.readLine()); int from = Integer.parseInt(st.nextToken()); int to = Integer.parseInt(st.nextToken()); graph[to].add(from); } for(int i = 1; i <= N; i++) { Arrays.fill(visited, false); resArr[i] = go(i); mx = Math.max(mx, resArr[i]); } for(int i = 1; i < resArr.length; i ++) if(resArr[i] == mx) sb.append(i).append(" "); System.out.println(sb); } public static int go(int idx) { visited[idx] = true; int cnt = 1; for(int next : graph[idx]) { if(!visited[next]) { cnt += go(next); } } return cnt; } }
-
해결됨IT 기업 취업을 위한: 코딩테스트 혼자서 정복하기 (C/C++)
f20 에서 f15 + 1은 이해가 됩니다...
다만, f15 에서 f10 +1 +1 / f12 +1 +1 은 이해가 되지 않습니다. 15원을 만들기 위해서는 10원을 만든 동전 개수에서 5원짜리 동전+1 만 하는게 맞지 않나요? 마찬가지로 f12도 12원을 만들기 위해서는 12원을 만든 동전개수에 3원짜리 +1만 하면 되는줄 알았지만 왜 f10 +1+1 / f12+1+1 인지 이해가 되지않습니다...
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
왜 틀렸는지 도저히 모르겠습니다
http://boj.kr/cf2c8a947f5041b69efd55961657526cmax함수 빼고 로직은 다 똑같은 거 같은데 왜 제 코드는 틀린건지 이해가 안됩니다.. 부탁드려요
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
final 선언 이유
Main 클래스 안에서MAX 변수에 대해 굳이 final로 초기화 하는 이유가 무엇일까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-T 질문드립니다.
http://boj.kr/153cb07e167d4de1a892d2dfa6fe08c1생각한 반례나 게시판에 반례 다 입력해보고 display 함수로 다 찍어봐도 문제가 없어보이는데25%에서 자꾸 터지고 있습니다.영상보고 이해는 큰돌님 풀이를 이해 했으나, 제가 초기에 작성한 코드에서 어디가 이상이 있는 지 궁금해서 질문드립니다.구조체에 name 변수는 display로 찍어보고 싶어서 선언했습니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
스토쿠 검사
이렇게 풀어도 정답 다 통과되던데 반례가 있을까요 ?import sys import string as t sys.stdin = open("input.txt", "r") a = [list(map(int, input().split())) for _ in range(9)] True_flag = True nums = [i for i in range(1, 10)] for y in range(0, 9, 3): for x in range(0, 9, 3): res = [] res.extend(a[y : y + 3][0][x : x + 3]) res.extend(a[y : y + 3][1][x : x + 3]) res.extend(a[y : y + 3][2][x : x + 3]) if len(nums) != len(set(res)): True_flag = False break if True_flag: print("YES") else: print("NO")
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-L 질문입니다.
http://boj.kr/8eb2af8984ed4372953a94ed5a6b5d48 처음부터 복잡하게 스크립트를 작성하는건 피하고싶기도 하고, 클래스 구조 설계도 연습해볼겸 Time이라는 클래스를 써서 구현했습니다.팀ID와 득점시간을 받아서 히스토리에 추가합니다.현재 동점일 때 승리 중이었던 팀의 누적 시간에 현재 득점시간 - 승리시작시간을 더합니다.현재 우위일 때 승리시작시간이 초기화 되어있을 경우 자신의 ID와 현재 시간을 기록합니다.while이 모두 끝나고(경기가 끝나고) 승리 중이었던 팀의 누적 시간에 48:00 - 승리시작시간을 더합니다. 여전히 private TC에서 막히네요..
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
반복 for문 Combination으로 하였는데 안됩니다.
저는 반복문 Combination으로 풀었는데 10% 진행 중 틀렸다고 나옵니다.염치 불문하고 질문 드립니다... http://boj.kr/25a5910a7d7a426f89ab47edf1c96199
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-F count 함수 질문
count 함수 내부가 이해가 안되서 질문 올립니다. if (word && (word & mask) == word)설명 해 주신 내용으로는 배운 것을 10진수 숫자로 표현 (mask) 한 값과 word 의 and 비트연산으로 나온 값이 자신이면 배운걸로 이해할 수 있는 단어가 되는 것을 알겠는데요 그럼 그냥 단순히(word & mask)==word 만 하면 되는 것 아닌가요? 그 앞에 word && 은 왜 있는걸까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-A
http://boj.kr/2f3c6f01dd234db9b9b55e990409fdc3맞왜틀입니다 ㅠㅠ 큰돌님의 해설 코드 외에도 지금까지 풀어봤던 걸 기반으로 풀어보려고 했는데 잘 안되네요...질문 게시판에 있는 모든 반례를 다 적용해봐도 잘 모르겠습니다...ㅜㅜ
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
숫자의 합 구하기
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int N = sc.nextInt(); String sNum = sc.next(); char[] cNum = sNum.toCharArray(); int sum = 0; for(int i=0; i<cNum.length; i++){ sum += cNum[i] - '0'; } System.out.println(sum); } }이 코드에서 int N = sc.nextInt(); 이렇게 한 이유가 문제 예제 이유 5, 54321 에서 5를 입력했기때문에 사용한 건가요??
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
숫자야구 문제 질문
숫자야구 문제 코드 부분에서약간 오류가 있는 것 같아서 질문드립니다.number, strike, ball에 각각 힌트를 분배할 때hint[0]~[2]가 아닌 arr[0]~[2]를 담으면서,arr[1]이 strike, arr[2]가 ball이 맞는 것 같은데영상에 나오는 코드를 다음과 같이 고치면 될까요?for arr in hint: number = arr[0] strike = arr[1] ball = arr[2]
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-D 질문입니다!!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님 문제를 보고 DFS로 더 간단하게 풀 수 있을것 같아서 시도해봤는데 오답이 나왔습니다.제가 어느 부분을 놓쳤는지 봐주시면 감사하겠습니다!http://boj.kr/93bc347be5074e999271416f69842831
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-E 뮤탈리스크문제 질문있습니다
http://boj.kr/76d330363fe14462b380a7036a3434f7문제가 이해가 잘 가지않아 선생님의 코드를 보고 작성하였습니다여기서 궁금한부분이 bfs일경우일때 visited[][][]3차원 배열에 이미 들어가있는 값이 있으면 continue하는 조건인데 q에들어가는 원소가 추후에 들어오는 visited일 경우 같은 원소의 idx라고 하여도 dfs가 아닌 bfs인 이상 무조건 count되는 레벨의 갯수가 트리나 그래프로 따졌을때 depth 가 깊은 탐색순서가 되기때문에 visited가 원소가 있을때 이후에 들어오는 count는 무조건 기존에들어가있는 vistied의 원소보다 클 것이므로 해당조건만으로 문제를 풀수있는것인가요?
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
이상한게 햇갈리는데요.....
저번 수업도 그렇고...반복문 작성할 때 아 이거는 i<N인가? M인가? 이게 햇갈리는데, 뭐 좋은 방법 없을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-c fill 함
fill(&visited[0][0], &visited[0][0] + 101*101, 0);이 부분에서 저는n*n까지만 필요하다고 판단해서 fill(&visited[0][0], &visited[0][0] + n*n, 0);이렇게 했더니 아예 다른 값이 나오다ㅓ라구요..저는 visited[][] 를 n8n만큼만 사용한 것인데 왜 값이 다른지 궁금합니다... 좋은 강의 감사드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-Q 치즈 질문입니다.
안녕하세요. 여러 테스트 케이스 가지고 해봤는데 반례를 찾지 못해서 질문 드립니다. 단순 반복 DFS로 구현을 해봤는데요.치즈 조각이 남아 있을 때 까지 반복공기 부분 찾기 ( 치즈 속 구멍은 x)공기와 맞닿은 치즈 부분 찾기공기와 맞닿은 부분 녹이기12%에서 틀리는데 어떤 부분을 놓친걸까요?? http://boj.kr/0eaf787d61fa40b093d24ee028da3376
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
모범 답안 코드 로직에 대한 질문입니다.
코드를 아직 이해하지 못했습니다. go 함수에서 a[y][x]가 1이기만 하면 무조건 벡터에 좌표를 넣고 return 하는 것 같은데, 이렇게 하면 가장 바깥에 있는 치즈의 면적 외에도 내부에 있는 치즈 (1)까지 전부 포함되어 벡터에 넣고 메인 함수에서 0으로 만드는 것 아닌가요? 가장 바깥쪽을 인식한다.가장 바깥쪽을 제거한다.면적을 카운트 한다.완전히 없어질 때까지 반복 이게 정답 로직인 것 같은데, 코드에서는 a[y][x]가 1이기만 하면 무조건 제거하는 것으로 해석되어 헷갈려서 질문드립니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
섹션 4-1 getOrDefault 메서드가 undefined에러가 떠요
구글링해보니 자바8이상이면 메서드 쓸 수 있다는데 저는 자바 11버전이거든요 왜 이럴까요ㅠㅠ
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
그리디-씨름선수 질문
안녕하세요 강사님!수업 도움이 정말 많이 되고있습니다, 감사합니다.다름이 아니라 그리디- 씨름선수 문제에서 질문이 있는데요!(181,60), (180,70), (170,72) 이렇게 꼭 키가 가장 큰 사람을 반드시 포함시키지 않아도세 명을 선발할 수 있다고 생각했는데 키가 가장 큰 사람을 반드시 포함시키고 세는 경우만 답이 되나요??그래서 아래와 같이 코드를 써봤는데 이렇게 하면 답이 틀릴까요?n=int(input()) data=[] for i in range(n): height,weight = map(int, input().split()) data.append((height, weight)) data.sort(key = lambda x : (x[0], x[1]), reverse=True) tmp_lst = [] for i in range(n): tmp=1 max = data[i][1] for j in range(i, n): if max<data[j][1]: max = data[j][1] tmp+=1 tmp_lst.append(tmp) max_cnt=tmp_lst[0] for i in range(n): if tmp_lst[i]>max_cnt: max_cnt=tmp_lst[i] print(max_cnt)