inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

1-N 분배법칙 질문

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

*, %는 연산자 우선순위가 같으니까 6:00 부근쯤 설명한 분배법칙을 적용하려면 해당 코드를 변경(주석처리 부분)해야 하는것 아닌가요? typedef long long ll; ll go(ll a, ll b, ll c) { if (b == 1) { return a % c; } ll ret = go(a, b / 2, c); //ret = (ret * ret) % c; ret = ret % c * ret % c; if (b % 2) { ret = (ret * a) % c; } return ret; }

  • c++
  • 코딩-테스트
댓글 3 좋아요 0 조회수 395

맞왜틀! 반례가 궁금합니다!ㅠㅠ

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

http://boj.kr/91c2421aa3ef471eac5950368d3428c1 이렇게 코드를 작성하였더니 주어진 테케가 잘 돌아가는데 틀린 이유가 궁금합니다ㅜㅜ 반례도 생각해보았는데 다 잘 돌아가서 뭐가 문젠지 모르겠어서요ㅠㅠ항상 잘 듣고 있습니당 감사합니다 ㅎㅎ

  • c++
  • 코딩-테스트
밍링 댓글 1 좋아요 0 조회수 230

코드 리뷰 부탁드립니다

미해결

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. function solution(s, arr) { const cache = Array.from({ length: s }).fill(0); for (let i = 0; i < arr.length; i++) { // cache miss if (!cache.includes(arr[i])) { cache.unshift(arr[i]); cache.pop(); } // cache hit else { const idx = cache.indexOf(arr[i]); const temp = cache[idx]; let j; for (j = idx - 1; j >= 0; j--) { cache[j + 1] = cache[j]; } cache[j + 1] = temp; } } return cache; } let arr = [1, 2, 3, 2, 6, 2, 3, 5, 7]; console.log(solution(5, arr)); // 7 5 3 2 6 최악의 경우 O(N^2)인 거 같은데 맞나요 ?

  • javascript
  • 코딩-테스트
ukgi 댓글 1 좋아요 0 조회수 181

백준 24479 문제 시간 초과 질문 드려요

해결됨

[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편

안녕하세요 백준에서 테스트 결과 시간 초과 오류가 납니다 . 확인 한번 가능할까요? import java.io.*; import java.util.*; public class Main { static final int MAX = 100000 + 10; static int N, M, R; static ArrayList<Integer>[] graph; static boolean[] visited; static int[] answer; static int order; public static void dfs(int idx) { visited[idx] = true; answer[idx] = order; order++; for (int i = 0; i < graph[idx].size(); i++) { int next = graph[idx].get(i); if (visited[next] == false) dfs(next); } } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken()); M = Integer.parseInt(st.nextToken()); R = Integer.parseInt(st.nextToken()); graph = new ArrayList[MAX]; for (int i = 1; i <= N; i++) { graph[i] = new ArrayList<>(); visited = new boolean[MAX]; answer = new int[MAX]; order = 1; } for (int i = 0; i < M; i++) { st = new StringTokenizer(br.readLine()); int x = Integer.parseInt(st.nextToken()); int y = Integer.parseInt(st.nextToken()); graph[x].add(y); graph[y].add(x); } for (int i = 1; i <= N; i++) { Collections.sort(graph[i]); } dfs(R); for (int i = 1; i <= N; i++) { bw.write(String.valueOf(answer[i])); bw.newLine(); } bw.close(); br.close(); } }

  • java
  • 코딩-테스트
  • 알고리즘
  • dfs
댓글 1 좋아요 1 조회수 416

곳감(모래시계) 질문

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 다음과 같이 코딩을 작성했는데, rotation 이 자꾸 이상하게 되네요.. 도대체 어느부분이 잘못된건지 잘 모르겠습니다 ㅜㅜ n = int(input()) a = [list(map(int, input().split())) for _ in range(n)] m = int(input()) temp = [] for _ in range(m): h, t, k = map(int, input().split()) temp = a[h-1] #temp에 원래 값 저장 if t == 0: for i in range(n): #temp에서 꺼내와 index값 변경 if i-k < 0: a[h-1][i] = temp[i-k+n] else: a[h-1][i] = temp[i-k] else: for i in range(n): if i+k >= n: a[h-1][i] = temp[i+k-n] else: a[h-1][i] = temp[i+k] print(a) sum = 0 s = 0 e = n for i in range(n): for j in range(s, e): sum += a[i][j] if n//2 > i: s += 1 e -= 1 else: s -= 1 e += 1 print(sum)

  • python
  • 코딩-테스트
Minji Kim 댓글 1 좋아요 0 조회수 239

다익스트라질문

해결됨

코딩테스트 [ ALL IN ONE ]

[코테 적용] 👉 [Network Delay Time] (후반부) 에서요. 파란색 박스 제외하고 빨간색 박스에서만 pq에서 정렬일어나는거 맞나요?

  • python
  • 코딩-테스트
  • 알고리즘
zzzzz 댓글 1 좋아요 1 조회수 200

다익스트라 강의 관련 질문이 있습니다.

해결됨

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

설명해주신 다익스트라 알고리즘 코드를 보면 32~33번째 줄에서 아래 조건이 만족하면 무조건 우선순위 큐에 nxt 정점이 추가되는데요. if dist[node] + weight < dist[nxt] 이런 경우 nxt 까지 도달할 수 있는 거리 정보가 업데이트 될 때마다, 우선순위 큐에 nxt 노드가 중복으로 삽입될 수 있는 것 같은데요 질문 1. visit 여부를 확인하는 방식 등으로 우선 순위 큐에 중복으로 넣는 코드를 제거할 수 있을 것 같은데, visit 배열이 빠진 이유가 있나요? 질문 2. 그리고 우선순위큐에 중복으로 노드가 존재하게되어도 동작이나 성능 측면에서 문제가 없을지 궁금합니다

  • python
  • 코딩-테스트
  • 알고리즘
DaBin Han 댓글 2 좋아요 1 조회수 407

피자 배달거리 DFS 시간초과 문제

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

import java.util.ArrayList; import java.util.Scanner; class Main { static int N, M, dis, min, sum, answer; static ArrayList<Point> houses, pizzas; static Point[] spizzas; static int[] ch; public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); N = sc.nextInt(); M = sc.nextInt(); spizzas = new Point[M]; houses = new ArrayList<>(); pizzas = new ArrayList<>(); answer = Integer.MAX_VALUE; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { int tmp = sc.nextInt(); if (tmp == 1) { houses.add(new Point(i, j)); } if (tmp == 2) { pizzas.add(new Point(i, j)); } } } ch = new int[pizzas.size()]; T.DFS(0); System.out.println(answer); } void DFS(int L) { if (L == M) { sum = 0; for (Point house : houses) { min = Integer.MAX_VALUE; for (Point pizza : spizzas) { dis = Math.abs(house.x - pizza.x) + Math.abs(house.y - pizza.y); if (Math.min(min, dis) == dis) { min = dis; } } sum += min; } if (Math.min(sum, answer) == sum) { answer = sum; } } else { for (int i = 0; i < pizzas.size(); i++) { if (ch[i] == 0) { ch[i] = 1; spizzas[L] = pizzas.get(i); DFS(L + 1); ch[i] = 0; } } } } } class Point { int x; int y; public Point(int x, int y) { this.x = x; this.y = y; } } 선생님의 풀이와는 다르게 체크드리스트를 만들어 DFS구현을 하였고 답이 잘 나오긴 하는데 채점사이트에서는 시간초과 문제가 나오네요 ㅜㅜ 혹시 문제가 어떤 것인지 알 수 있을까요??

  • java
  • 코딩-테스트
민표 댓글 1 좋아요 0 조회수 221

이렇게 코드를 작성해도 삽입 정렬인가요?

미해결

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. function solution(arr) { for (let i = 1; i < arr.length; i++) { for (let j = i; j > 0; j--) { if (arr[j] < arr[j - 1]) { [arr[j - 1], arr[j]] = [arr[j], arr[j - 1]]; } } } return arr; } let arr = [11, 7, 5, 6, 10, 9]; console.log(solution(arr));

  • javascript
  • 코딩-테스트
ukgi 댓글 1 좋아요 0 조회수 249

x.length()-1 질문

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

안녕하세요! 단어 뒤집기에서 x.length()-1 코드중 x의 길이를 사용하는게 이해가 안됩니다. ㅠㅜ str.length()-1을 사용하는게 아니라 x.length()-1를 사용하는 이유가 뭔가요? for(String x : str) { char[] s = x.toCharArray(); int lt=0, rt=x.length()-1; }

  • java
  • 코딩-테스트
코코 댓글 1 좋아요 0 조회수 202

2910번 질문 드립니다.

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

큰돌님 안녕하세요. 저는 이 문제를 map을 쓰지 않고 그냥 vector에서 find_if함수를 이용하여 풀었는데요. 제가 생각했을때에 sort한다면 입력받는 순서대로 vector에 push하게 되니까 먼저 나온것이 앞에 있어야된다는 조건을 자동적으로 처리될꺼라 생각했는데 오류가 났습니다. 그래서 stable_sort를 사용하여 결국 풀긴했는데 왜 그냥 sort는 안되는 것일까요? 소스코드 : http://boj.kr/84577fb3c0724cc3954dfd6ccfa2b412

  • c++
  • 코딩-테스트
TaeSeok Ma 댓글 1 좋아요 0 조회수 193

사용하고 계신 폰트 이름 알 수 있을까요?

해결됨

코딩테스트 [ ALL IN ONE ]

vs코드 상에서 제가 쓰고 있는 기본 폰트는 l하고 1 이 헷갈리게 입력되어서 폰트를 바꾸고자 합니다 혹시 강사님께서 사용하고 계신 폰트 이름을 알 수 있을까요?

  • python
  • 코딩-테스트
  • 알고리즘
jankim7878 댓글 1 좋아요 1 조회수 217

이 코드에서 erase 함수는 불필요할까요?

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

http://boj.kr/a89a03fa7dcd4e108a3576e95e177b5c 이 코드는 강의를 보기 전에 제가 자력으로 풀어본 코드입니다. 인접리스트로 트리를 구현하고, 지울 노드를 입력할 시 erase 함수를 통해 해당 노드의 하위 트리를 모두 삭제한 후 지울 노드를 삭제합니다. 그 후에 calculate 함수를 통해 값을 구하는데요, 강의에서 dfs 하나만으로 푸시는걸 보니 굳이 erase가 필요할까 싶기도 했네요.. 무식하게 일단 풀어본다는게 이렇게 된거 같은데 여기서 좀 더 코드를 다듬을 수 있을까요?

  • c++
  • 코딩-테스트
송민규 댓글 1 좋아요 1 조회수 189

DFS로는 맞춰서 BFS로 풀어보았습니다!

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

BFS로 풀었을 때 답은 맞는데 제출하면 메모리 초과로 틀렸다고 나오는데, 혹시 이 코드에서 메모리를 줄여서 맞힐 수 있는 방법이 있는지 여쭤보고 싶습니다! #include<bits/stdc++.h> using namespace std; int N; const int dy[4] = {-1,0,1,0}; const int dx[4] = {0,1,0,-1}; const int max_n = 100; int arr[max_n][max_n]; int visited[max_n][max_n]; int x,y; int Max = 0; int main(){ cin >> N; fill(&arr[0][0], &arr[0][0] + max_n*max_n, 0); for(int i = 0; i < N; i++){ for(int j = 0; j < N; j++){ cin >> arr[i][j]; } } for(int h = 1; h <= 100; h++){ int cnt = 0; fill(&visited[0][0], &visited[0][0] + max_n*max_n, 0); for(int i = 0; i < N; i++){ for(int j = 0; j < N; j++){ if(arr[i][j] >= h && visited[i][j] == 0){ queue<pair<int,int>> q; q.push({i,j}); cnt++; while(q.size()){ tie(y,x) = q.front(); q.pop(); visited[y][x] = 1; for(int n = 0; n < 4; n++){ int ny = y + dy[n]; int nx = x + dx[n]; if(ny < 0 || ny >= N || ny < 0 || ny >= N){ continue; } if(arr[ny][nx] < h){ continue; } if(visited[ny][nx]){ continue; } q.push({ny,nx}); } } } } } Max = max(Max, cnt); } cout << Max; return 0; }

  • c++
  • 코딩-테스트
강민석 댓글 1 좋아요 0 조회수 233

시간 초과

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

import java.util.*; class Main{ public int[] solution(int N, List<Integer> A, int M, List<Integer> B) { ArrayList<Integer> answer = new ArrayList<>(); Collections.sort(A); Collections.sort(B); for(int key : B) { if(A.contains(key)) { answer.add(key); } } return answer.stream() .mapToInt(Integer::intValue) .toArray(); } public static void main(String args[]) { Main T = new Main(); Scanner sc = new Scanner(System.in); int N = sc.nextInt(); List<Integer> A = new ArrayList<>(); for(int i = 0; i < N; i++) { A.add(sc.nextInt()); } int M = sc.nextInt(); List<Integer> B = new ArrayList<>(); for(int i = 0; i< M; i++) { B.add(sc.nextInt()); } for(int answer : T.solution(N, A, M, B)) { System.out.print(answer + " "); } } } 안녕하세요. 이와 같이 코드를 짰는데, 케이스 4에서 시간초과가 나왔습니다. 이에 대해 저는 다음과 같은 가설을 세워봤습니다. Collections 클래스의 sort를 하는 시간이 Arrays 클래스의 sort 시간 보다 오래 걸린다. 입력되는 배열을 ArrayList로 한 것이 배열보다 더 메모리를 많이 사용하므로 시간이 더 오래 걸린다. 아직 자료구조에 대한 이해와 시간 복잡도에 대해서 기본이 부족한 것 같습니다..! 감사합니다.

  • java
  • 코딩-테스트
버럼 댓글 1 좋아요 0 조회수 205

파이썬에서의 재귀

해결됨

코딩테스트 [ ALL IN ONE ]

글에 두서가 없어도 양해 바랍니다 이 수업 수강 이전에 코딩 문제를 풀 때 파이썬으로 재귀함수를 사용했던 적이 있습니다. 그때 알게 된것이 파이썬의 재귀함수에는 기본적으로 깊이의 제한이 있다는 것입니다. sys.recursionlimit()으로 확인해보니 재귀호출을 1000이상 못하도록 값이 제한되어 있고 이 값을 늘려서 사용하는것은 별로 추천되는 방법이 아닌걸로 알고 있습니다. C언어 사용할때에는 속도면에서 제한도 없고 파이썬보다 속도도 월등하다보니 재귀를 자주 사용했었는데 파이썬에서 재귀함수로 풀어야 하는 경우가 있을까요?

  • python
  • 코딩-테스트
  • 알고리즘
댓글 2 좋아요 1 조회수 366

섹션5 7번 문제 알리바바와 40인의 도둑 설명이 잘못된건지 제가 잘못 이해하는 건지 확인 부탁드립니다.

미해결

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

안녕하세요, 섹션5 7번 문제 알리바바와 40인의 도둑 설명 중에, 오른쪽 또는 아래쪽으로만 간다고 말씀하셨는데, 만약 돌다리가 아래와 같이 주어지면, 7*7 행렬에, 0 index 부터 시작한다고 했을 때, 1 9 9 9 1 1 1 1 1 1 1 9 9 1 9 9 9 9 9 9 1 9 9 9 9 9 9 1 9 9 9 9 9 9 1 9 9 9 9 9 9 1 9 9 9 9 9 9 1 이 경우에는 (0,0)->(1,0)->(1,1)->(1,2)->(1,3)->(1,4)-> (위로 이동)->(0,4) ->(0,5)->(0,6)->... 이렇게 해서 위로 이동하는 경우가 있어야 최소 비용으로 갈 수있는 것 아닌가요?....

  • c++
  • 코딩-테스트
salgu7623 댓글 1 좋아요 0 조회수 255

1-K 질문드립니다

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 선생님 강의 잘 보고 코테 준비중입니다 http://boj.kr/0e551d7f960a46a0a8bda8fc069bcc40 1% 부터 틀리는게 뭐가 문제일까요? 반례들 넣어보면 잘 나오는거 같거든요 답변 좀 부탁드립니다~

  • c++
  • 코딩-테스트
kira.hanjh 댓글 1 좋아요 0 조회수 278

연결리스트 -1 번 강의에서 질문입니다!

해결됨

코딩테스트 [ ALL IN ONE ]

class LinkedList(object): 선언한 뒤에 linkedlist = LinkedList() 이렇게 선언을 하는데 object 는 안써도 되는건가요? ㅠㅠ

  • python
  • 코딩-테스트
  • 알고리즘
nullnote 댓글 1 좋아요 1 조회수 164

1 - K 배열의 크기에 대해 질문 드립니다.

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요. 문제에서 알파벳 대문자 문자열을 입력받고 각 알파벳의 갯수를 배열을 통해서 세고 있는데 이때 배열의 크기를 알파벳 갯수와 같은 26으로 하지않고 200으로 하는 이유는 무엇입니까?

  • c++
  • 코딩-테스트
연유 댓글 2 좋아요 0 조회수 203

인기 태그

인프런 TOP Writers

주간 인기글