묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
공부 방법 관련 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님!강의를 듣고있는데 드디어 문제의 강의를 들을 차례인데먼저 제가 풀어보고 듣는게 나은지 아니면 그냥 일단 강의를 듣는지 잘 모르겠어서 질문 남겨요! 그리고 강의 교안을 혼자 계속 공부를 따로 해야하는지 부분도 궁금합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
제가 구현한 방식이 분할 정복이 맞을까요?
http://boj.kr/950a82ed51544ab2afcab679ab16ca02 안녕하세요 강사님 제가 작성한 코드인데 강사님이 설명해주신 부분과 차이가 있는 부분이 있어서 질문올립니다. 첫 번째 질문저는 재귀함수를 작성할 때 하위함수를 무조건 호출하고, 가장 하위함수의 결과부터 시작해서 올라오는 방식으로 코드를 짰습니다.이런 방식을 분할 정복이라고 할 수 있는건가요? 두 번째 질문위의 방식으로 코드를 작성하기 위해서 시작 지점을 범위의 우측 하단으로 설정했습니다. 그래서 맨 처음 재귀함수를 호출할 때, N을 시작 지점으로 입력받게 됩니다. 이 부분은 잘 처리한건가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-I while문 내부
while(lo<=hi){ ll mid=(lo+hi)/2; if(check(mid)){ ret=mid; hi=mid-1; }else lo=mid+1; } 왜 하던것 처럼 이렇게 하면 안되나요? ㅠㅠret =mid;lo=mid+1;else hi=mid-1; 이렇게 해야 되네요
-
해결됨코딩테스트 [ ALL IN ONE ]
혹시 그리디 알고리즘은 안하는건가요?
제가 놓친건진 모르겠는데 그리디가 목차에 없어서 궁금합니다!
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
8. 팰린드롬(replaceAll 정규식이용): 기업 코딩테스트를 볼 때 정규식을 사용해야 하나요?
8. 팰린드롬(replaceAll 정규식이용) 해당 문제를 저는 정규식을 사용하지 않고, 풀었습니다.정규식을 잘 모르기도 하고, 정규식도 제대로 알려면 공부해야 할 범위도 많아도 생각합니다. 혹시 기업 코딩테스트를 볼 때 무조건 정규식을 사용해야 하는 문제가 빈번하나 궁금합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-N c++과 Python에서 동일 코드인데 에러가 나는 이유
안녕하세요! 예전에 동일 문제를 파이썬으로 풀다가, c++로 풀어봤는데, 왜 해당 파이썬코드는 정답 으로 인식되는데, 동일하게 짠 c++코드는 오답으로 인식되는지 궁금합니다. def pow_mod(a, b, c): if b == 1: return a % c n = pow_mod(a, b//2, c) if b % 2: return (n * n * a) % c else: return (n * n) % c A, B, C = map(int, input().split()) result = pow_mod(A, B, C) print(result)#include <bits/stdc++.h> using namespace std; typedef long long ll; ll A, B, C; ll tmp, ret; ll calc(ll a, ll b, ll c){ if (b == 1) return a % c; tmp = calc(a, b/2, c); // if b is odd number => only multiple a once if (b % 2) { return (tmp * tmp * a) % c; } else { return (tmp * tmp) % c; } } int main(){ cin >> A >> B >> C; ret = calc(A, B, C); cout << ret << '\n'; return 0; }어느 것이 반례인지 감이 안옵니다. 혹시 알 수 있는지, 왜 발생하는지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-A와 비교해서 6-B의 while 문 내부 궁금한 점
while(lo <= hi){int mid = (lo + hi) / 2;if(check(mid)){hi = mid - 1;ret = mid;}else lo = mid + 1;}여기서 ret을 찾는 과정(ret=mid)이 조건을 만족하는 최소의 ret을 찾는 과정인가요? ret=min(ret,mid) 필요 없나요?사실 잘 이해가 안되네요ㅠㅠ6-A 는 ret=min(ret,mid)이런 걸 했는데 여기는 없어서요
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
combinations 사용
#import sys from itertools import combinations #sys.stdin=open("input.txt", "rt") N, K = map(int, input().split()) num_list = list(map(int, input().split())) total = 0 sum_list = [] for i in combinations(num_list, 3): total = sum(i) sum_list.append(total) sum_list.sort(reverse=True) print(sum_list[K-1])3중 for문 말고 combinations을 사용했는데 채점 시스템에서 오류가 뜹니다 ㅠㅠ 혹시 코드 문제점을 알 수 있을까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
테스트 케이스 10, 20 은 맞는데 30부터오답이에요
package array; import java.util.Arrays; import java.util.Scanner; public class Peaks_10 { static int solution(int n, int[][] arr) { int cnt = 0; for(int i=1; i <= n; i++) { for(int j = 1; j <= n; j++) { int target = arr[i][j]; // target과 상 하 좌 우 중 큰 값을 찾는 삼항연산자. int up = target > arr[i-1][j] ? target : arr[i-1][j]; int down = target > arr[i+1][j] ? target : arr[i+1][j]; int left = target > arr[i][j-1] ? target : arr[i][j-1]; int right = target > arr[i][j+1] ? target : arr[i][j+1]; // 상 하 좌 우 모두 target일 경우 cnt 값 증가 if(target == up && target ==down && target == left && target == right) { cnt++; } } } return cnt; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] arr = new int[n+2][n+2]; for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) { int num = sc.nextInt(); arr[i][j] = num; } } System.out.println(Peaks_10.solution(n,arr)); } }
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
송아지 찾기
while (!queue.isEmpty()) {int size = queue.size(); for (int i = 0; i < size; i++) { int current = queue.poll(); if (current == E) {return jumps; for 문 돌리는 코드에서 for(int i=0; i<queue.size; )로 직접 돌리면 size값이 달라지던데 이게 왜 그런걸까요 ?이해가 잘 안가서 질문드립니다
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
섹션7 그래프 최단거리 질문 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.섹션 7 마지막문제 그래프최단거리의 BFS함수 내부에서 dis[v]를 0으로 다시 초기화해주는 이유가 궁금합니다. 0으로 초기화해주지 않아도 배열을 선언하고 처음 초기화할때 0으로 자동 초기화가 일어나지 않나요?public static void BFS(int v){ Queue<Integer> queue = new LinkedList<>(); ch[v] = 1; dis[v] = 0; //왜?? queue.add(v); while (!queue.isEmpty()){ int currV = queue.poll(); for (Integer nextV : graph.get(currV)) { if(ch[nextV]==0){ //방문한 적이 없는지 확인 ch[nextV] = 1; queue.add(nextV); dis[nextV] = dis[currV]+1; } } } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
반례가 궁금합니다.
클래식한 방법으로도 풀어보고 싶어서 완전탐색으로만 풀어봤습니다.http://boj.kr/4a9402fdc35849379ffcb1f72c8c1016우선 변수명을 대충 지어서 설명 드리자면v는 2차원벡터로 데이터 저장하고 combi는 조합을 구하는 벡터입니다. 조합을 1개부터 N개까지 다 구하고 check하는 함수로 보내는 로직입니다.vmin은 영양소 최소값 모아둔 벡터입니다. ans는 식품의 idx를 저장하는 벡터입니다. value는 현재 최저 가격입니다.check하는 함수에서 value와 price를 비교해서 (이전 최저가격과 현재 측정가격) 같으면 사전순 정렬을 위해 ans와 combi 벡터를 비교해서 바꿔주도록 설정했습니다만.. 80%부분에서 계속 틀려서 답답합니다 ㅠㅠ
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
toString으로 변환하여 비교해서 풀어 보았습니다.
문제를 이해를 잘 못한건지, 저는 날짜가 먼저 3일,13일, 23일이 올 수 있고 그걸 일의자리 수를 알아낸 후 비교하여 풀었습니다. function solution(day, arr) { let answer; let waringCars = []; const checkDay = day.toString().length === 1 ? day.toString() : day.toString()[1]; arr.map((cars) => { if (cars.toString()[1] === checkDay) waringCars.push(cars); }); return waringCars.length; } const day = 23; let arr = [25, 23, 11, 47, 53, 17, 33]; console.log(solution(day, arr));
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
map함수를 이용하여 풀어보았습니다.
map함수를 이용하여 풀어보았습니다.function solution(arr) { let sum = 0; let oddNumbers = []; arr.map((value) => { if (value % 2 === 1) { sum += value; oddNumbers.push(value); } }); return [sum, Math.min(...oddNumbers)]; } let arr = [12, 77, 38, 41, 53, 92, 85]; console.log(solution(arr));
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
스프레드 연산자로 문제를 풀어 보았어요
풀고 난 후 강의를 보니 for문으로 풀었어야 됬나 싶군요. function solution(arr) { return Math.min(...arr); } let arr = [5, 7, 1, 3, 2, 9, 11]; console.log(solution(arr));
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-L 111000이랑 000111은 결과 같지만 두번 계산 하는건가요
네5-K는 어려워서 아무도 질문이 없나 보네요 ㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-G while(1)문 내부를 이렇게 하면 왜 안될까요?
if(hi==p)break; if(sum<n)sum+=a[hi++]; else sum-=a[lo++]; if(sum==n)ret++;왜 순서를 바꾸면 오류가 날까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-A와 C는 거의 같은문제인가요?
네
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
큰돌님의 알고리즘 선생님은 어느 분 이셨나요?
1700문제 푸시면서 본인 스스로 깨우치신건가요?
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
선생님 enumerate 를 사용해서 푸는 것과 차이가 있을까요?
저는 선생님과는 다르게 enumerate() 를 사용해서 풀었는데요!혹시 선생님이 푼 방법과 제가 푼 방법중 좀더 효율적이고 좋은 코드는 어떤것인가요? 차이가 좀 궁금합니다. def solution(nums): answer = 0 min = 100_000 for idx, _ in enumerate(nums): if nums[idx] < min: answer = idx min = nums[idx] return answer print(solution([7, 10, 5, 3, 2, 15, 19])) print(solution([-12, 12, 30, -15, -5, 3, 9, -11, 14])) print(solution([17, 11, 5, 8, 23, 29, 19, 12, 25, 16, 2])) print(solution([7, 5, 12, -9, -12, 22, -30, -35, -21]))