묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
따닥따닥 입력
안녕하세요 큰돌님 숫자가 따닥 따닥 붙어있는 입력을 받는 예제에서 교안(p.179)에 있는 코드를 복붙해서 했는데 출력이 안나옵니다. 혹시 한번만 확인해주실 수 있으신가요?이 상태로 계속 입력을 해도 출력이 안나오네요.. #include<bits/stdc++.h>using namespace std; int n, m, a[10][10];string s; int main(){ cin >> n >> m; for(int i = 0; i < n; i++){ cin >> s; for(int j = 0; j < m; j++){ a[i][j] = s[j] - '0'; } } for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ cout << a[i][j]; } cout << '\n'; }}/*입력 4 41000000001110000 */
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-C 왜 틀렸을까요..?
http://boj.kr/4473182f754a49919a49607d9fc3711c 2-C 문제 왜 틀렸을까요 ㅠㅠ 비가 안 오는 부분도 고려하였고 나름 디버깅도 찍어 보았습니다.. 맞왜틀팁도 보았는데...
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 질문드립니다!
안녕하세요 강사님. 강의 해설은 잘 이해되었습니다! 하지만 이전에 제 풀이가 계속 출력초과로 나오는데 어디서 재귀를 탈출하지 못하고 있는지 잘 파악이 안되어 글을 남깁니다! 확인해주시면 감사하겠습니다!https://www.acmicpc.net/source/69546505
-
해결됨코딩테스트 [ ALL IN ONE ]
Hash Table 질문있습니다.
질문1. 해시테이블 (Hash Table)강의 마지막부분에서 파이썬은 딕셔너리로 잘구분되어있다고 하셨는데요. 해쉬테이블이 파이썬에서 딕셔너리인가요? 질문2. 제가 원했던 코드는 dir 라는 딕셔너리 변수에 possible 값이 있으면 그부분을 False로 적용시킬려고 했는데 왜 안되나요?질문3. 함수내부에서 print(dir)을 하면 딕셔너리가 출력이 되는데 밖에서 하면 <built-in function dir>이런식으로 출력이 됩니다. 배열은 함수 내부나 외부에서도 출력이 잘 되는데 딕셔너리는 직역변수로 인식이 되나요?질문4. for y in dir: 2번째 for문에 옆에 처럼 안하는 이유는 딕셔너리는 순번이 없어서 그런건가요?import sys sys.stdin = open("input.txt", "r") from collections import deque def two_sum(nums,target): # n=len(nums) dir={} for x in nums: dir[x]=True for y in nums: possible=target-dir[y] if possible in dir: dir[possible] = False print(dir)#{4: True, 1: True, 9: True, 7: True, 5: True, 3: True, 16: True} #제가 원했던 코드는 dir 라는 딕셔너리 변수에 possible 값이 있으면 그부분을 False로 적용시킬려고 했는데 왜 안되나요? # 아래처럼요. # {4: True, 1: True, 9: True, 7: True, 5: False, 3: True, 16: True} two_sum(nums=[4,1,9,7,5,3,16],target=14) print(dir)#<built-in function dir>
-
해결됨코딩테스트 [ ALL IN ONE ]
key + in 관련 질문입니다.
설명 감사드립니다.섹션 4 '[코테 적용] 👉 [2번 문제] key in (후반부) ' 2:45 부분을 공부중입니다.두 가지 질문이 있습니다. 1.이 내용 설명에 의하면 Big O notation에 대해for num in num_dict: => O(n)if num -1 not in num_dict: => O(1)while targer in num_dict: => O(1)이렇게 되는건가요? 2.if 또는 while + 딕셔너리 사용은 항상 Big O notation이 O(1)이 되는건가요? 아니면 상황에 따라 if 또는 while + dict의 시간복잡도가 달라질 수도 있는건가요? 감사합니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
11724 문제 질문
안녕하세요. 공부하다가 또 질문이 생겨 다시 한 번 질문 드립니다...리스트를 조회하는 것보다 딕셔너리를 조회하는 것이 더 빠를 거 같아서 문제의 그래프를 딕셔너리 자료형으로 바꿔주고 있는데요.제가 작성한 코드가 로컬에서 예시를 넣었을 때는 잘 되는데 백준에서는 틀린 답이라고 나옵니다..코드를 첨부하여 질문 드리고 싶은데, 멘토링 부분이 어디있는지 알려주시면 감사하겠습니다!
-
해결됨[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
그래프 초기화
안녕하세요. 선생님 덕분에 멋진 강의를 듣고 있는 학생입니다.이제 유형 1을 다 수강했는데, graph를 초기화할 때 보통 N의 개수가 적으면 불리언 2차원 배열로 선언하고, N의 개수가 많으면 빈리스트로 구성된 2차원 리스트로 선언하는데요.그냥 모든 문제에 빈리스트로 구성된 2차원 배열을 선언하지 않는 이유가 N의 개수가 적으면 배열로 선언하고 조회하는 게 더 빠르기 때문인지 여쭤봐도 될까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
2번만 RuntimeError가 뜨는데요
package twopointers; import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; public class CommonElements { static ArrayList<Integer> solution(int n, int m, int[] arr, int[] arr2) { ArrayList<Integer> list = new ArrayList<>(); Arrays.sort(arr); Arrays.sort(arr2); int p1 = 0; int p2 = 0; while (p1 < n && p2 < m) { if (arr[p1] == arr2[p2]) { list.add(arr[p1]); p1++; p2++; } else if (arr[p1] < arr2[p2]) { p1++; } else { p2++; } } return list; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } int m = sc.nextInt(); int[] arr2 = new int[n]; for (int i = 0; i < m; i++) { arr2[i] = sc.nextInt(); } for (int result : CommonElements.solution(n, m, arr, arr2)) { System.out.print(result + " "); } } } 뭐가 문제일까요??
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
Array.sort 사용 구분
앞 문제에서 Collection.sort를 쓰면 문제에서 효율적이지 못하다는 댓글을 봐서 처음부터 Array.sort를 해서 정렬하는 방법을 생각을 못했는데 어떤 문제에선 사용하고 사용하지말고 구분이잘 안되는데 이럴땐 어떻게 하나요...
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
아스키코드로 숫자만 추출하여 풀어 보았습니다.
자연수를 만들어야 되니 제일 첫번째가 0이 오면 안되므로 replace 정규식을 활용 했습니다.function solution(args) { const originalArray = []; for (const val of args) { if (val.charCodeAt() >= 48 && val.charCodeAt() <= 57) { originalArray.push(val); } } return originalArray.join("").replace(/^0/, ""); } console.log(solution("tge0a1h205er")); console.log(solution("g0en2T0s8eSoft"));
-
미해결2주만에 통과하는 알고리즘 코딩테스트 (2024년)
투포인터 #22988 문제 답안에서 빠진 게 있네요
투포인터 s == e 일 경우에 remain 을 1 추가 한다음에는 break 해서 while 문을 벗어나게 해주셔야 합니다. 안 그럼 그 다음 if 문에서 cnt 가 하나 추가되어 버립니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 질문입니다.
어느 부분을 고쳐야할까요?http://boj.kr/27d25d91cf814662acfc6944406fbd32
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
카운트 부분 질문드립니다.
if(count(arr, mid)==c) {answer=mid;lt=mid+1;} else if(count(arr, mid)<c) rt=mid-1;else lt=mid+1;카운트가 c보다 큰 값인 경우에 answer=mid를 해주지 않으면 왜 오답으로 나오는지 모르겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
DFS 종화 문제 질문드립니다.
안녕하세요. 선생님멀어 보였던 DFS를 이해하고 코딩하고 있다는게 놀라운 수강생입니다. 종화는 방구쟁이야 문제 관련되서 궁금한게 있어 질문드립니다. 저 같은 경우에 visited를 빼고 하나의 함수로 구현하였습니다.이렇게 구현해도 괜찮을까요? 제 풀이가 맞을지 걱정되서 질문 남깁니다.감사합니다. http://boj.kr/6dccc9b963c543a0bd537144b48beb0a
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
회문검사 알파벳을 위하여 아스키코드를 활용 해보았습니다.
감사합니다.function solution(args) { let answer = "YES"; const char = args.toLowerCase(); const originalArray = []; for (const val of char) { if (val.charCodeAt() >= 97 && val.charCodeAt() <= 122) { originalArray.push(val); } } if (originalArray.join("") !== originalArray.reverse().join("")) answer = "NO"; return answer; } console.log(solution("found7, time: study; Yduts; emit, 7Dnuof"));
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
소문자로 바꾼후에 reverse를 통해서 구해보았습니다
감사합니다.function solution(args) { return args.toLowerCase().split("").join("") === args.toLowerCase().split("").reverse().join("") ? "YES" : "NO"; } console.log(solution("gooG"));
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-b 시간복잡도
다른질문과 비슷한 질문인데 이해가 잘 안가서 좀 더 자세한 답을 부탁 드리고자 합니다.#include <bits/stdc++.h>using namespace std;int n;vector<pair<int,int>> v;int a, b;priority_queue<int, vector<int>, greater<>> pq;int ret;string s,f;int main(){ cin >> s>>f; while (s.find(f) < s.size()){int n = s.find(f);s.erase(n, f.size());//cout << s<<"\n";}if (s.size())cout << s << "\n";elsecout << "FRULA" << "\n";}제 코두의 경우 시간복잡도가 O(N)이 아니라 O(n^2) 인 이유를 좀만 자세하게 설명해주시면 감사하겠습니다. 비슷한 질문 답변 내용이 이해가 잘 안되서 한 번 더 잘문드립니다. 저는 천만의 경우 1000만 + 999만 999 + ... 1 이라고 생각이 되서요 ㅠㅠ.while 안에서의 시간복잡도 계산이라 더 이해가 안가는 것 같기도 합니다..
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
반례를 찾지 못하겠습니다.
http://boj.kr/6258c1ff85134915a0cdfa47b6c7266f우선 저도 dfs 형식으로 cctv의 개수만큼 0000부터 3333까지 방향을 바꿔가면서 모든 경우를 탐색하는 완탐을 구현했습니다.다만 다른 부분이 있다면, 비트 마스킹을 활용했다는 점과 전역변수 사용을 하지 않았기에 원복을 딱히 시키지 않았다 인데, 시간초과도 아닌 틀렸습니다가 나옵니다.ㅠㅠ조언 주시면 감사하겠습니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
section2 - 2.보이는학생 질문입니다 !
function solution(arr){ answer = 0; arr[0] ? answer += 1 : '' for (let i=1; i<arr.length; i++){ if(arr[i]>arr[i-1]) answer += 1 else if(arr[i] === arr[i-1]) answer -= 1 } return answer; } let arr=[130, 135, 148, 140, 145, 150, 150, 153]; console.log(solution(arr));위 내용처럼 작성해도 문제없는 코드일까요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-B_ 배열 참조
안녕하세요 큰돌님! 함수 매개변수 참조 관련하여 궁금한 것이 있습니다. 배열을 main함수에서 이렇게 선언하고 -> int a[n]; check함수에서 int a[]로 참조하여 가져왔습니다. 근데 check함수 내에서 for문을 작성할 때 for(int i : a) 이런 형태로 사용하면 오류가 나더라구요 ㅜㅜ 구글링도 해봤는데 이유가 안 나와서 질문 남깁니다. 질문: 참조를 해서 가져온 배열은 for(int i : a) 형태로 사용하지 못하나요? bool check(int mid, int a[]){ // int *a도 가능 int sam=0; int cnt=0; for(int i=0; i<n;i++){ // for(int i : a) 이렇게 쓰면 오류 남http://boj.kr/36a79858aca1486097ef4c35007c5d42