묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지
python metaclasses vs java reflection
강의를 듣던도중, python metaclasses가, 자바의 reflection과 비슷하다는 느낌을 받았습니다.질문 :그렇다면, 메타클래스를 이용해서, 런타임에 동적으로 클래스의 정보를 조작하거나 프록시 객체를 만드는등의 일이 가능한건가요?
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
안녕하세요 누적합 문제번호에 오타가 있는 것 같습니다
안녕하세요.누적합 강의에서 첫 문제인 '수열'은 백준 2259번이 아닌 2559번으로 등재되어 있습니다!
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
안녕하세요 완전탐색 2503번 풀이 질문 드립니다
3일 째 스스로 숙제라고 말씀하신 부분에 대해서 코드 작성하면서 제출해보는데 계속 오답이 나와서 질문 드립니다. 구글에 풀이 검색하면 Permutation이나 DFS로만 풀이가 나와서 어떻게 코드를 작성해야 할까요?
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
dfs를 호출 할 때 매개변수..?
안녕하세요! 강의 넘 잘 듣고 있습니다. 하루만에 거의 다들었네요,,ㅋㅋ질문이 있습니다혹시 dfs를 호출할 때 이런 '-'나 '|' 같은게 나오면매개변수로 '-' 나 '|' 를 추가해서 dfs함수에 넘겨도 되는건가요?저는 이렇게 할 때가 많은데 이렇게 하지 않고 오히려 dfs 함수 안에서 해결해주는 게 더 간단한 것 같기도 해서요.. 보통은 어떻게 하시나요? 전 4방 탐색을 하면서 이렇게 풀었었네요,, 한 방향만 탐색하는 팁 배워갑니다 ㅎㅎimport java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int[] dr = {-1, 1, 0, 0}; static int[] dc = {0, 0, -1, 1}; static int N, M; static char[][] arr; static int ans; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken()); M = Integer.parseInt(st.nextToken()); arr = new char[N+2][M+2]; for (int i = 1; i <= N; i++) { String str = br.readLine(); for (int j = 1; j <= M; j++) { arr[i][j] = str.charAt(j-1); } } for (int i = 1; i <= N; i++) { for (int j = 1; j <= M; j++) { if (arr[i][j] == '|') { dfs(i, j, '|'); ans++; } else if (arr[i][j] == '-'){ dfs(i, j, '-'); ans++; } } } System.out.println(ans); } private static void dfs(int r, int c, char shape) { int start = 0; int end = 0; if (shape == '|') { start = 0; end = 1; } else if (shape == '-'){ start = 2; end = 3; } arr[r][c] = '1'; for (int d = start; d <= end; d++) { int nr = r + dr[d]; int nc = c + dc[d]; if(arr[nr][nc] == shape) { arr[nr][nc] = '1'; dfs(nr, nc, shape); } } } }
-
해결됨코딩테스트 [ ALL IN ONE ]
two_sum 딕셔너리 문제 코드관련 질문이 있습니다.
class Solution(object): def twoSum(self, nums=[3,3], target=6): ans = [] dict = {} for i,v in enumerate(nums): if target-v in dict: ans.append(prev) ans.append(i) return ans dict[v] = i prev = i이렇게하면, for문 안에서 리스트를 append하는거니까 총 O(n) 하는거아닌가요? 왜 예시 테스트케이스는 통과를 했는데 리트코드에서 submit을 누르면 나머지 테스트케이스는 통과하지 못하는거죠 ㅜㅜ
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지
private, protected, publlic 멤버변수와 private, protected, publlic 멤버메소드에 대해서 자세한 설명 부탁드립니다.
안녕하세요파이썬에서 private, protected, publlic 멤버변수와 private, protected, publlic 멤버메소드에 대해서 자세한 설명 부탁드립니다.
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
정수론 백준 1407번 질문 있습니다.
안녕하세요.정수론 2로 몇번 나눠질까(#1407) 부분을 수강 하면서 궁금한 점을 질문드립니다.해당 문제를 접근할 때 팩토리얼로 푸시는 것을 볼 수있었습니다. 해당 문제 자체에는 팩토리얼에 대한 설명은 없었는데, 어떻게 팩토리얼을 떠올릴 수 있으셨는지 궁금합니다. 해당 문제와 비슷하게 출제가 되었을 때 접근 방법이 궁금합니다.#2247도 같은 카테고리로 넣어두셔서 같은 접근 방법인가 싶은데, 해당 문제도 접근법이 궁금합니다. (어떤 단어나 부분에서 이 문제는 이렇게 풀어야겠다고 느끼시는 건지 궁금합니다.)
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
완전탐색 1816번 암호 키 문제 질문
안녕하세요!백준 1816번 암호 키 문제에 관한 질문이 있는데요우선 제가 초급자라서 허접한 질문이어도 양해부탁드립니다.for-loop이 100만째 되는 시점에 "YES"를 print 하는건 이해가 되는데요.제가 아래 두번째 코드에 적은 것처럼 어차피 100만에서 for-loop이 종료되니까 print("YES")를 해주면 된다고 생각했는데 백준에 두번째 코드를 제출해보니까 틀린 답이라고 나오더라구요.혼자 고민을 해보았는데 결론이 나오질 않아서 질문드립니다.강의에서 보여주신 것처럼 첫번째 코드에서 i == 100만이라는 조건을 붙여줘야 하는 이유가 무엇일까요??감사합니다.n = int(input()) for _ in range(n): tc = int(input()) for i in range(2, 1_000_001): if tc % i == 0: print("NO") break if i == 1_000_000: print("YES") #---------------------------------- n = int(input()) for _ in range(n): tc = int(input()) for i in range(2, 1_000_001): if tc % i == 0: print("NO") break print("YES")
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
연결되어 있고 아직 방문하지 않은 노드에 대한 방문 순서 관련
제가 경험이 부족해서 그런 것 같은데요, 이 문제는 'x < y'라는 조건이 없다면 DFS로 풀 수 있는 문제가 아닌 것 같다는 생각이 들었습니다.https://www.acmicpc.net/problem/2644에서 '입력' 파트를 보면, '번호 x는 뒤에 나오는 정수 y의 부모 번호를 나타낸다.'라고만 나와있습니다. 즉, 'x < y'라는 조건이 주어져 있지 않습니다. 부모 노드 번호가 자식 노드 번호보다 작다는 조건이 주어져 있지 않는 것입니다.그래서 저는 이 문제가 DFS로 풀리는 문제가 아닐 것 같다고 생각했었습니다. 위 그림에서는 노드2의 부모가 1이지만, 2보다 값이 큰 3이 될 수도, 4가 될 수도 있을 것이라 생각했습니다. 따라서 노드2를 방문한 이후에, 노드2와 연결된 노드 중 아직 방문하지 않은 노드들 중 어떻게 부모 노드를 찾아야하지? '부모 노드 번호 < 자식 노드 번호'라는 조건이 없으면, 부모 노드를 찾을 수 없을 것 같은데?하는 생각이 들었습니다. 문제에서 x<y라는 조건이 없는 것 같은데, 어떻게 '나와 연결되어 있고 아직 방문하지 않은 노드 중 번호가 가장 작은 노드를 방문해야겠다'는 생각을 하신 것인지 궁금합니다..
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
문제 조건 관련 질문
문제(https://www.acmicpc.net/problem/1260)에 다음과 같은 조건이 있는데, 이게 무슨 의미인가요..?어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다.
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
graph, visited 사이즈 관련 문의
graph, visited의 사이즈를 다음 코드와 같이 노드 개수에 맞게 (n+1)로 하면 되겠다고 생각했는데, 노드 개수의 최댓값인 1000을 이용해 사이즈를 정하신 이유가 무엇인가요??graph = [[False]*(n+1) for _ in range(n+1)] visited = [False]*(n+1)
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
유기농배추에서 T는 무엇을 의미하나요?
T, M, N, K를 입력받아 사용한다고 하셨는데, M과 K는 각각 세로와 가로값으로 입력받고, K는 배추의 위치라는것을 알았습니다. 근데 T는 테스크케이스 라는 언급을 하셨고 코드에서도 아래와 같이 작성되있습니다.while (T-- > 0) { StringTokenizer st = new StringTokenizer(br.readLine()); M = Integer.parseInt(br.readLine()); N = Integer.parseInt(br.readLine()); K = Integer.parseInt(br.readLine()); // map 정보 // dfs 수행 .... }2번의 테스크케이스를 만드는 이유는 무엇인가요?그리고 단순히 궁금해서 여쭤보는데 가로와 세로 순서로 입력받고 코드를 실행하는것이 아닌 거꾸로 세로와 가로 순으로 실행하는지 궁굼합니다.답변 부탁드립니다. 감사합니다.
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
촌수계산 문제 질문
안녕하세요.위의 코드는 제가 강의를 듣기 전에 작성한 코드입니다.백준에서 2가지로 주어진 테스트 케이스는 통과하는데 코드를 제출하면 틀렸다고 나옵니다.코드 어디가 잘못된지를 모르겠습니다.그리고 강의에서는 dfs 함수에 start 변수만 넣지 않고 count 변수도 넣으셨는데 count변수를 매개변수로 넣지 않고 코드를 작성하는 방법이 있는지 궁금하고, 이러한 방법이 없다면 왜 매개변수로 count 변수를 넣어줘야 하는걸까요?
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
백트레킹 (냅색) 코드!
재귀 안에 answer 변수를 사용하려면 global answer 로 지정 해줘야 하지 않나요?
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
정수론 강의 14252문제
왜 두 수 사이에 3개 이상은 불가능한지 귀납법으로 어떻게 증명할지를 모르겠어서 질문 남깁니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
two_sum dictionary 적용 관련 질문드립니다.
안녕하세요! two_sum 문제에 dictionary를 적용 관련하여 문의드리고자합니다.강의 코드에서는 중복값이 존재 (ex : nums = [4,1,9,7], target = 14])일 때에 대해서는 해결이 되지 않았고, 해당 문제에 대해서는 해결을 하였습니다.다만 leet code에서는 같은 값이 n번(n>=2) 들어갔을 경우 (ex : nums = [4,1,9,7,7], target = 14])에 대해서도 true를 반환해야할 것으로 보입니다.파이썬 dictionary의 경우 nums = [4,1,9,7,7]로 dictionary를 생성하게되면 중복값은 key값 생성이 되지 않는 것으로 확인됩니다.예를들어,memo = {}for index, v in enumerate(nums): memo[v] = index하게되면, { 4:0, 1:1, 9:2, 7:3, 7:4 }가 아닌 { 4:0, 1:1, 9:2, 7:4 }로 생성되는 것 같습니다. 이렇게 된다면 아래 조건식에서 판단이 어려운데 혹시 dictionary를 무조건 활용한다는 가정하에 가능한 방법(중복 key처리, 중복값에 대한 여부 저장 등(?))이 있을까요?제가 문제에 대해 정확히 이해한것이 아닐 수 있어 만약 해당 상황에 대한 풀이는 필요하지 않다면 미리 양해말씀드립니다 ㅎㅎ..
-
해결됨코딩테스트 [ ALL IN ONE ]
실제 사용 예시
linked list를 사용해야 하는 경우가 언제일까요? 실제 사용하는 문제를 보고 싶습니다제 생각에는 array list로 구현하고 visit같은 경우도 list slicing 후 +로 리스트를 합치면 N(1) 만에 가능하기 때문에 시간이 부족한 코테에서 언제 linked list가 꼭 필요할까 궁금합니다
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (심화편)
Red-Black 트리 제거 2번째
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 사진은 Red-Black 트리 제거 2번째 예시입니다. 이렇게 끝나면 Red-Black 트리가 안되지 않나요...?3이 빨강이거나, 10이 검은색이어야 5번 규칙에 따라 Black-Height가 맞지 않나요?이해가 잘 되지 않습니다... ㅠㅠ
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
최적화(재귀, 백트래킹의 경우의 수 ) 마지막 문제(냅색) 코드에 질문이 있습니다.
안녕하세요, 강의 잘 듣고있습니다. 다름이 아니라, 마지막 문제인 냅색 문제에서 물건을 안넣은 경우에 recur(idx +1, weight, value)가 아닌 recur(idx, weight, value) 로만 파라미터를 설정하신 이유가 궁금합니다!질문과 별개로 강의 내용이 정말 좋아서.. 당장 이번주 코딩 테스트인데 도움이 많이 될 것 같습니다. 좋은 강의 저렴하게 제공해주셔서 정말 감사합니다!
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
정수론
정수론 강의에서 6분 54초? 부터 7분 12초? 까지 아무런 소리나 강의에서 움직임이 없는데 저한테만 발생하는 오류인가요..?