묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
1번문제 틀린 이유를 모르겠습니다.
import java.util.Scanner; // Press Shift twice to open the Search Everywhere dialog and type `show whitespaces`, // then press Enter. You can now see whitespace characters in your code. public class Main { public int solution(String data, char what) { int count = 0; data = data.toLowerCase(); for (char a : data.toCharArray()) { if (a == what) { count++; } } return count; } public static void main(String[] args) { Main T = new Main(); Scanner scanner = new Scanner(System.in); String data = scanner.nextLine(); char what = scanner.nextLine().charAt(0); System.out.println(T.solution(data, what)); } }1번 문제인데 이대로 제출하니까 틀렸다고 합니다. 원인을 모르겠어요 ㅠ
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
8-1 합이 같은 부분집합
정확하게 출력이 되는것 같은데 오답이라고 나옵니다 선생님.. 제가 잘못 짠 부분이 있을까요??import java.util.Scanner; class Main { static int n,total; static int[] array; static boolean flag; public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); n = sc.nextInt(); total =0; array = new int[n]; for (int i = 0; i < n; i++) { array[i] = sc.nextInt(); total += array[i]; } flag = false; T.DFS(0, 0); if (flag) { System.out.println("YES"); } else { System.out.println("NO"); } } void DFS(int L, int sum) { if (L == n) { return; } if (sum == total / 2) { flag = true; return; } if (sum > total / 2) { return; } DFS(L + 1, sum + array[L]); DFS(L + 1, sum); } }
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
05_adtFileIO 질문있어요.
search -> edit -> save 중 save에 궁금한 게 있습니다.int SaveNodeToFile(MYNODE* pNode)를 보면파일에서 불러낸 경우만 고려돼있습니다.신규 데이터를 찾아서 수정하는 경우에는 저장하지 않고 프로그램 종료 시 신규 데이터 일괄로 저장하는 방법을 써야할까요? pNode->bNew 값을 따져서 신규인지 구분하고 ab+모드로 파일 끝에 저장하는 건 생각했는데파일에 저장했으니 bNew를 false로 수정해야하나?수정하면 offset이 0이라 다시 검색할 때 offset이 0인 데이터를 찾을텐데? 그럼 offset 값은 어떻게 주지? bNew 값을 true로 저장하고 신규 데이터 일괄 저장할 때 덮어 써야하나? 라는 고민에 빠졌습니다. 어떤 방법이 좋을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-E 재귀 시간초과
안녕하세요! 항상 강의 잘 보고 있습니다.다름이 아니라, 아래 링크처럼 재귀 + 백트래킹으로 풀었음에도 불구하고 시간초과가 나는 이유가 감이 안옵니다.어디 부분 때문에 시간 초과가 일어나는 것일까요??https://www.acmicpc.net/source/share/a30df43331f9487eb25d43dfa7a24e95
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
머리를 열심히 굴려서 정답을 맞추는 코드를 작성 하였지만, 마음에 안듭니다 ㅠㅠ
모든 e를 찾아서 해당 위치를 배열에 담고, 루프를 돌려서 제일 최소 거리를 구해서 리턴 하게끔 만들었으나, 무언가 마음에 들지 않네요. 질문 올리고 강사님 강의를 바로 보겠습니다! function solution(str, str2) { const findAry = []; for (let i = 0; i < str.length; i++) { if (str[i] === str2) findAry.push(i); } return str.split("").map((v, index) => { const max = []; for (const value of findAry) { max.push(Math.abs(value - index)); } eturn max.sort((a, b) => a - b)[0]; }); } console.log(solution("teachermode","e"));
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-H_13913 숨바꼭질4
안녕하세요 큰돌님! 저는 prev를 처음부터 떠올리지 못해 vector로 trace를 시도했는데요. 테스트 코드는 잘 통과하는데 제출을하면 런타임에러(out of bound)가 뜨네요 ㅜㅜ 혹시 왜 범위 초과가 뜨는지 알 수 있을까요?http://boj.kr/c2069ab9e0d64c6ab7d86ce198e32e94
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-g
항상 답변 주셔서 감사합니다.lo hi가 작은 수 부터 시작한다면 lo~hi의 합이 n 보다 작은 경우 hi가 ++ 되는 것은 이해가 됩니다. 하지만 lo ---- hi 사이에 큰 차이가 있다고 가정할 경우lo~hi의 합이 n 보다 크면 lo를 크게 하라고 하셨는데, hi를 크게 해주면 안되는 이유는 뭔가요??lo~hi의 합이 n 보다 작으면 hi를 크게 하라고 하셨는데 lo를 작게 할 수 있지도 않나요?? else if (hi == p)break; 이 코드 의미를 좀만 더 자세히 설명 부탁드립니다.
-
해결됨SQL 코딩테스트를 위한 첫 걸음
서브쿼리 질문
선생님 안녕하세요 서브쿼리 관련해서 질문드립니다...선생님이 내주신 inner join 연습문제를 풀어보면서 궁금한 점이 생겼는데서브쿼리를 적용할시 from 절 이후에 서브쿼리가 들어가기도 하고 아니면 inner join 이후 ㅎ서브쿼리가 들어가는 경우도 있고 하는거 같은데.. 그 차이점이 잘 이해가 가질 않아서요.. 어떤 경우에서 그렇게 판단하여 서브쿼리를 넣는 것인지 확인부탁드립니다..
-
해결됨SQL 코딩테스트를 위한 첫 걸음
EASY INNER JOIN 관련 average-selling-price 연습문제
선생님 이 문제에 대해서 and p.start_date <= u.purchase_dateand u.purchase_date <= p.end_date이 부분을 왜 조건을 달아줘야 하는지 궁금합니다. 따로 문제에 명시되지 않은거같은데.. 확인부탁드립니다! select p.product_id ,round(sum(u.units*p.price)/sum(u.units), 2) average_price from Prices pinner joinUnitsSold uon p.product_id=u.product_idand p.start_date <= u.purchase_dateand u.purchase_date <= p.end_dategroup by p.product_id;
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
채점 사이트 연결
우측 상단에 채점 버튼을 누르면 브라우저 새 창만 열리고 사이트가 정상적으로 안 뜨는데 어디서 채점사이트를 이용해야하나요??
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
강의 3-6 두수의 합(해시) 질문
강의 듣기전에 이렇게 풀어본 코드인데요.Counter로 미리 key,value를 채워두는 것 자체가 데이터최적화도 안되고 접근방법이 조금 엇나갔다는 건 알겠습니다. 그래서 이미 빈도수를 모두 주었기 때문에 (target-i != i)라는 조건이 추가로 생긴 것 같은데, if문에서 저런식으로 두가지 조건을 묶는 방식은 나쁜건가요? 공부를 시작하지 많이 안됐는데 뭔가 저런식으로 조건이 생기면 기분이 찝찝합니다.from collections import Counter def solution(nums,target): answer = [0]*2 nH = Counter(nums); for i in nums: if (target-i in nH) & (target-i != i): answer = sorted([i,target-i]) return answer return answer
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
채점 오류
import java.io.*; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { public static int solution(int[] arr, int K) { int max = 0; Queue<Integer> zeroPoint = new LinkedList<>(); int lp = 0, length = 0; for (int rp = 0; rp < arr.length; rp++) { if (arr[rp] == 0) { zeroPoint.offer(rp); // 0이 꽉 찼을 경우 if (zeroPoint.size() > K) { length = rp - lp; max = Math.max(length, max); Integer poll = zeroPoint.poll(); lp = poll + 1; } } } return max; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st.nextToken()); int K = Integer.parseInt(st.nextToken()); int[] arr = new int[N]; StringTokenizer st2 = new StringTokenizer(br.readLine()); for (int i = 0; i < N; i++) { arr[i] = Integer.parseInt(st2.nextToken()); } System.out.print(solution(arr, K)); } } 6. 최대 길이 연속 부분수열파트에서 이 코드가 정답이라고 나옵니다. 테스트 케이스가 부족해서 모든 문제에서 이런 현상이 발생하는건지, 이 문제에만 오류가 있는건지 궁금합니다. 반례 테스트 케이스 : 14 21 1 0 0 1 1 0 1 1 0 0 1 1 1 기댓값 : 7출력값 : 6
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
증가 수열 만들기에서 궁금한 점이 있어 질문드립니다.
증가하는 수열을 만들기 위해반복문을 통해 좌 우를 번갈아가며 하나씩 지난 수와 비교하고 있습니다. 여기서 질문입니다.last=2left = 4right = 3 예를 들어 현재 상황이 위와 같을 경우선생님께서 짜신 코드에서는4와 3이 tmp에 추가된 후 정렬되어 수열을 만들것으로 예상되는데원래대로 하면 left 4가 수열에 추가되고 다음에 순차가 돌아간 right는 3이기 때문에 수열에 포함될 수 없게 되는거 아닌가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
Dev C++ 프로그램 사용 시 vector 관련 에러 발생할 경우. (질문은 아닙니다!!)
해당 내용은 질문이 아닌 저와 같은 에러가 발생하시는 분들을 위해 남긴 글입니다..! Dev C++ 프로그램으로 vector를 선언 후 컴파일하는 과정에서 에러가 발생했습니다.에러 내용은 다음과 같습니다. [Error] : in c++98 'a' must be initialized by constructor, not by '{...}'[Error] : no matching function for call to 'std::vector<int>::vector(<brace-enclosed initializer list>)'발생 이유 : C++98은 표준 컨테이너를 초기화하는 초기화 목록을 지원하지 않아 C++2011 표준에 따라 적절한 컴파일 옵션을 설정하기 위함이라고 합니다.(정확하지 않을 수 있습니다!) 해결 방법Tools -> Compile Options -> General'Add the following~' 문장 바로 옆에 있는 박스 체크하기.'Add the following~' 밑에 있는 박스 안에 "-std=c++11"(큰따옴표도 같이)를 작성. 하단에 있는 ok 버튼 누르기.저는 이와 같은 방법으로 해결했습니다.
-
해결됨SQL 코딩테스트를 위한 첫 걸음
INNER JOIN 강의 질문
안녕하세요 선생님 INNER JOIN 문제에 대해 해석이 잘안되어서 질문하게 되었습니다.. 조인하기 전에 서브쿼리를 넣어서 쿼리를 완성하는지에 대해 궁금합니다 ㅠ 문제 자체를 잘 이해 못하고 있는거 같기도한데 상세한 설명 부탁드리겠습니다...
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
씨름 선수 문제 질문드립니다.
잘이해가 가지 않아 질문을 살펴보던 도중 하기와 같이 답변하신 것을 보고 질문드립니다.'''키순으로 정렬했다면183 65는 어느 누구에게도 키와 몸무게 모두 작지는 않습니다. 그래서 선발되는 것입니다.181 60은 183 65와 비교해서 키, 몸무게 모두 작기 때문에 선발되지 않습니다.179 61은 183 65와 비교해서 키, 몸무게 모두 작기 때문에 선발되지 않습니다....172 67은 키는 위에 모든 사람보다 작지만 몸무게는 위에 사람 누구에게도 작지 않습니다. 그래서 선발됩니다.170 72도 키는 위에 모든 사람보다 작지만 몸무게는 위에 사람 누구에게도 작지 않습니다. 그래서 선발됩니다.''' 만약 면접을 170 72 인 지원자가 먼저 본다면 합격자는 2인이 되는게 맞을까요? 선생님은 키순으로 정렬하여 문제를 해결하셨으나 문제에 키순으로 면접본다는 내용은 없습니다. 면접 순서에 따라 합격자 수가 변경된다면기존 주어진 순서대로 문제를 풀어야하는게 아닌가라는 생각이 들었습니다. 이에 대해 답변 부탁드립니다.감사합니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1주차 개념 #4 시간복잡도 질문 있습니다.
강의를 듣고 이진탐색 시간복잡도를 살펴보기 위해 문제를 하나 풀었습니다.https://www.acmicpc.net/problem/1920 수찾기라는 문제인데 http://boj.kr/ac3378d1315b433b80567fa81531fd67위처럼 이진탐색을 재귀로 구현을 하였는데 왜 시간초과가 발생하는지 잘 이해가 안가는데 왜 그런지 자세하게 설명이 가능할까요..??
-
해결됨코딩테스트 [ ALL IN ONE ]
강의자료 노션 링크 언제 보내주시는 걸까요?
어제 노션 링크 요청드렸었는데, 혹시 언제 받아볼 수 있나요?
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
강의에 나오는 문제들은 백준에도 존재하나요?
강의에 나오는 문제들은 백준에도 있나요?있다면 어떻게 검색을 해야하나요? 백준풀면서 잔디를 채우고 싶어서.. ㅎㅎ..
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
#11653 소인수분해 문제(최적화 관련)
아래와 같이 코드를 작성하였는데 답은 맞췄지만 강의에서 말씀하신 제곱근 아이디어가 반영되어있지 않습니다.아래 코드를 더 최적화 할 수 있는 아이디어가 있나요? #11653 소인수분해 N = int(input()) divide = True while(divide): for i in range(2, N+1): if N % i == 0: print(i) N = N//i break if N == 1 : divide = False