정수론 24분대 강의내용
해결됨
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
24분14초 2의 제곱수로 나뉘어지는 약수를 찾아 더할때 왜 모든숫자들을 +1한상태로 봐야만 하는지 이유를 모르겠습니다
- python
- 코딩-테스트
- 알고리즘
173만명의 커뮤니티!! 함께 토론해봐요.
해결됨
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
24분14초 2의 제곱수로 나뉘어지는 약수를 찾아 더할때 왜 모든숫자들을 +1한상태로 봐야만 하는지 이유를 모르겠습니다
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 2979번 문제 정답 교안으로 공유해주신 코드의, 맨 아래 for문에서 for(int j = 1; j < 100; j++) 코드 부분이 잘 이해가 가지 않습니다! 시간이 1 ~ 100 사이 값이 들어온다고 하는데 위의 반복문에서는 1 ~ 99번째 까지만 순회하며 주차요금을 정산하지 않나요? 부등호가 <= 가 아니라 < 기호가 들어가는지 이유가 궁금합니다ㅠ
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요. 완탐 하는재귀에서 return부분을 함수가 아닌 이번 문제와같이 ret으로 리턴하는 경우의 사고 과정이 궁금합니다. 정리하면 완탐 재귀시 return 부분에 대한 사고를 어떻게 해야할까..가 고민입니다.
미해결
파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요, 강사님! 이제 막 수업 듣기 시작한 학생입니다. 다름이 아니라 문제자료를 어디서 다운받을 수 있을까요?
미해결
Do it! 알고리즘 코딩테스트 with Python
올려주신 코드로 공부하고 백준에 업로드 해 본 결과 시간 초과가 뜨는데, 시간 초과가 되지 않게 하려면 어떻게 수정할 수 있을까요 ?
미해결
IT 기업 취업을 위한: 코딩테스트 혼자서 정복하기 (C/C++)
https://www.acmicpc.net/problem/12865 #include <iostream> #include <algorithm> using namespace std; int N, K; int W[101]; int V[101]; int DP[101][100001]; int main() { scanf("%d%d", &N, &K); for (int i = 1; i <= N; i++){ scanf("%d %d", &W[i], &V[i]); } for (int i = 1; i <= N; i++) { for (int j = 1; j <= K; j++) { if (j < W[i]) { DP[i][j] = DP[i-1][j]; } else DP[i][j] = max(DP[i-1][j],DP[i-1][j-W[i]]-V[i]); } } printf("%d", DP[N][K]); } 안녕하세요? 정올 문제로 배낭문제 수강하고 똑같이 있는 백준문제를 발견하고 작성한 코드인데 채점을 하면 틀렸다고 뜹니다. 혹시 이유를 알 수 있을까요?
해결됨
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하십니까 큰돌님 해당 문제를 bfs로 풀었는데 효율적인지 궁금합니다 ! http://boj.kr/efabd95dc54b4536956d2e87d8f80d04
미해결
자바 코딩테스트 - it 대기업 유제
소문자로 이루어진 문자열이 주어지면 해당 문자열의 문자를 지우거나 추가하여 모든 문자의 빈도수가 서 로 다르게 만들려고 합니다. 만약 주어진 문자열이 매개변수 s에 문자열이 주어지면 s의 모든 문자의 빈도수가 서로 다르도록 하기 위해 지우거나 추가해야 할 최소 개수를 반환하는 프로그램을 작성하세요. 만약 문제가 이렇게 나오다면 어떤 방법으로 풀어야할까요 ..? 생각해봤는데 방법이 안 떠올라서 질문 드려봅니다 .. 이런 문제는 없으려나용 ,,
미해결
Do it! 알고리즘 코딩테스트 with JAVA
안녕하세요? 강의를 듣다가 궁금한 것이 생겨 질문 드립니다. 자바의 정렬 기본 알고리즘 시간 복잡도와 이진 탐색 시간 복잡도가 nlogn인 건 이해했는데, 코드부를 보면 이중 반복문이 나오고 있습니다. 앞 서 강의에서 반복문을 기준으로 이중 반복문이면 n의2승이라고 말씀하셨는데, 이 중 반복문을 썼는데도 nlogn이 되는 건 반복문이 진행되는 동안 절반씩 찾기 때문인가요?? 만약 이중 반복문으로 시간 복잡도가 올라간다면 이중 반복문을 쓰지 않고, 해결하는 방법을 알려주실 수 있으실까요?
미해결
자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. function solution(arr) { let answer = 0; let dx = [-1, 0, 1, 0]; let dy = [0, -1, 0, 1]; for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr.length; j++) { console.log(arr[i][j]); for (let k = 0; k < 4; k++) { let nx = i + dx[k]; let ny = j + dy[k]; if ( nx >= 0 && nx < arr.length && ny < arr.length && ny >= 0 && arr[i][j] > arr[nx][ny] ) { answer++; } } } } return answer; } 알려주신 것처럼 flag 변수로 아닌 것을 찾아서 숫자를 늘려주는 것과 맞는 경우에 늘려주는 것이 어떤 차이가 있는건지 헷갈리네요...
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
http://boj.kr/24491eb2d8374e2992ee95757882a6ce 안녕하세요 큰돌쌤 2_J문제에서 왜 맞왜틀인지 잘 모르겠어서 질문드립니다. 저는 다음과 같이 코드를 짰습니다. h번 만큼 문자열 s를 입력받고 go함수 호출 go 함수에서 문자열 s의 요소가 'c'일때 s의 다음 요소도 'c'가 아니면 전 요소+1을 대입 ( s[i+1]=s[i]+1 ) 요소가 'c'보다 크다면 (99보다 크다면) 누적합 psum 을 +1하고 ret에 대입 요소가 'c'도 아니고 'c'보다 크지 않다면 ret에 -1대입 문자열 ret을 string 배열에 담아 출력
해결됨
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
실은 제가 파이썬으로 구현을 해보려고 해서 질문을 남겨요. vector<int> v[10001]; v[b].push_back(a); 이게 2D array라고 생각하면 될까요.. 문제의 자료를 담으려면 수도 코드로 [b : [a1, a2, a3], b2 : [a1, a2, a3]] 이렇게 들어가는게 맞을텐데 , 그럼 위에서 vector<int> v[10001]; 으로 선언한 부분이 각 b (신뢰받는 컴퓨터) 에 대해서 여러 a 들(신뢰하는 컴퓨터)를 담는 위 수도 코드를 구현할 수 있는 자료구조형인걸까요? 교안을 찾아봐도 모두 vector<int> v; 로만 선언되어서 1-d array로만 나오는 것 같어서 위 구조 v[10001] 를2-d array로 봐도 되는지 궁금합니다.
미해결
자바 코딩테스트 - it 대기업 유제
기존의 조건문 코드인 if(pos < n && t == inList[pos][0]){ if(Q.isEmpty() && t > fT) fT= t; Q.offer(inList[pos][1]); pos++; } 이 부분을 while(pos<n && list[pos][0]==t) { if(q.isEmpty() && t>ft) ft = t; q.offer(list[pos][1]); pos++; } 이처럼 반복문으로 코드구현해도 되나요?? 답은 맞게 나옵니다.
미해결
자바 코딩테스트 - it 대기업 유제
이처럼 코드를 작성했는데 마지막 테스트 케이스 답이 0이 나옵니다. 어디가 잘못된건지 모르겠습니다. import java.util.*; import javax.security.auth.Subject; import java.awt.List; import java.io.*; class Main { public static int n,answer=10000000; public static boolean[] visit; public int solution(int[][] cans){ n=cans.length; visit = new boolean[n]; dfs(0,0,cans); return answer; } public static void dfs(int L, int s, int[][] cans) { if(L==n/2) { ArrayList<Integer> a =new ArrayList<>(); ArrayList<Integer> b =new ArrayList<>(); for(int i=0; i<n; i++) { if(visit[i]) a.add(i); else b.add(i); } int sum1=0,sum2=0; for(int i=0; i<L; i++) { sum1+=cans[a.get(i)][0]; sum2+=cans[b.get(i)][1]; } answer = Math.min(answer, Math.abs(sum1-sum2)); } else { for(int i=s; i<n; i++) { visit[i] = true; dfs(L+1, i+1, cans); visit[i] = false; } } } public static void main(String[] args){ Main T = new Main(); System.out.println(T.solution(new int[][]{{87, 84}, {66, 78}, {94, 94}, {93, 87}, {72, 92}, {78, 63}})); System.out.println(T.solution(new int[][]{{10, 20}, {15, 25}, {35, 23}, {55, 20}})); System.out.println(T.solution(new int[][]{{11, 27}, {16, 21}, {35, 21}, {52, 21}, {25, 33},{25, 32}, {37, 59}, {33, 47}})); } }
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
http://boj.kr/7afbddf128d14ddaba6a0ad686d5816c 안녕하세요 선생님, 제가 구현 시 atoi 를 생각하지 못해서 string to int 를 따로 구현 해봤습니다. 예제 코드는 다 동작하고 다른 것들도 다 동작이 되는데 반례를 찾지 못하겠습니다. 틀렸다고 뜨네요.. 어떤 점이 잘못되었는지 알려주시면 감사하겠습니다.
해결됨
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
제가 문제를 처음에 종화가 방귀를 꼈을 때 종화를 기준으로 상하좌우 한 칸 씩만 오염된다로 이해했는데 그런 것이 아니라 방귀를 끼는 순간 종화의 좌표를 기준으로 연결된 육지(숫자 1)들은 전부 바다(숫자 0)으로 변한다는 문제인거죠??
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
http://boj.kr/7226630a963848e3bdc6a61318877151 짠 코드가 적절한가요? 적절하다면 재귀함수는 기저사례가 필요하다고 했는데 제가 짠 코드에서 기저사례는 어디에 있나요? 틀렸다면 어디를 어떻게 고치는게 좋을지 알려주셨으면 좋겠습니다. 감사합니다
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 큰돌님! 기존 답안과 차이점은 조건에 해당하는 재귀함수만 호출하는 대신, 함수 시작(line13) 에서 시간을 검사하여, 배제한다~~!! 할 수 있도록 하였는데요... 왜 틀린 답안인지... 가르침 부탁드립니다 ㅎㅎ http://boj.kr/a97107fe0c2d4574a2b852b398a10ecd 감사합니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
미해결
자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
function solution(arr){ let copy = arr.slice().sort((a, b) => b - a); return copy.map(it => arr.indexOf(it) + 1) } let arr=[87, 89, 92, 100, 76]; console.log(solution(arr)); 제가 코테공부는 거의 안해서 잘 모르는데 시간복잡도가 연관이 있을것 같습니다 2중 for문을 돌아야 하는 이유가 있을까요?
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 항상 강의 잘 보고있습니다.! 궁금한 점이 있는데, go() 함수 부분에서 while(true){ if(ret.size() && ret.front() == '0') } 참조 에러에 안걸리게 ret.size()를 꼭 적어야 한다고 말씀하셨는데, 제가 생각할땐 ret.front() == '0' 자체가 size가 1 이상이라는 것도 포함되니까 ret.size()를 적어야하는 이유를 잘 모르겠습니다.