묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-M 시간초과 질문입니다.
http://boj.kr/77d12fe723574ecc9f5d7a3804c0d7ea 안녕하세요!선생님과 비슷한 방법으로 푼거같은데 어디가 문제인지 잘 모르겠습니다 ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-H 맵 관련 질문있습니다 :)
안녕하세요 선생님 🙂 시간복잡도가 굉장히 타이트해서 이분탐색으로 푸는 문제인 것은 알고 있으나, 테스트 겸 map으로 다시 풀어보다가 이해가 되지 않는 부분이 있어서 질문드립니다. 30번째 줄의 mp[vecA[i]]++; 이 부분때문에 틀리는건데요, mp[vecA[i]] = 1;이라고 하면 맞더라구요. 둘이 연산 차이가 없어보이고, 테스트케이스도 정상적으로 출력이 되는데요, 제가 놓치고 있는 부분이 있을까요? http://boj.kr/076e9301948a40c9afb2262e5e4c26c0
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
최신화하기
#include <iostream> #include <ctime> using namespace std; struct TM { int tm_year; }; int main() { time_t timer = time(NULL); struct tm* t = localtime(&timer); int yeardb, year = t->tm_year + 1900, age; char Id[20]; cin >> Id; // 주민번호 입력 // 성별 계산 if (Id[7] == '1' || Id[7] == '2') { yeardb = 1900 + ((Id[0]-48) * 10 + (Id[1]-48)); // 특정 문자열의 문자숫자를 숫자로 변환하기 위해서는 '0' 문자0의 아스키 십진수인 48을 뺀다. } else { yeardb = 2000 + ((Id[0]-48) * 10 + (Id[1]-48)); } age = year - yeardb + 1; printf("%d ", age); if (Id[7] == '1' || Id[7] == '3') printf("M\n"); else printf("W\n"); return 0; }24년 기준 53세
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
시간 복잡도 O(n)과 O(c)의 차이
안녕하세요, 잘 듣고 있습니다! 0.준비 운동에서의 자료구조 정리 - python 강의 부분의 노션을 보니, 해시테이블의 경우 시간 복잡도가 O(c)로 적혀있던데, O(n)과의 차이가 무엇인가요? O(c)를 구글링 해보았는데 나오지 않아 질문드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-F 재질문드립니다 :)
안녕하세요 선생님 🙂해당 문제 재질문드립니다. 이 글은 아래의 순서로 이루어져있습니다.문제를 풀이한 내용이해되지 않는 부분 설명궁금한 부분이 무엇인지 3 2 1 65 5 23 2 99 10 2위의 예시는 문제의 2번 테스트케이스인데요, 풀이를 해보면 아래와 같습니다. 무게가 2인 가방에 알맞는 1과 2의 무게를 가지고 있는 요소들의 가치를 pq에 넣어 내림차순 정렬하면 99, 65 순으로 가치가 저장되어, 반복문 안에서 result값에 99를 더하고 빼면 65가 남아있다.이미 pq에 65가 저장되어있고, 99는 사용되었기 때문에 무게가 10인 가방에 알맞는 크기인 5의 무게를 가지고 있는 요소의 가치인 23을 pq에 저장하여 내림차순하면 65, 23 순으로 정렬되어있고, 1번을 반복하면 result에 65를 더하고 pq에 23이 남아있는채로 마무리된다. 위와 같이 이해했습니다. 정확히 이해한거 같은데요, 이해가 되지 않는 조건이 하나 있습니다. // 한유태 코드 for (; j < N; j++) { if (C[i] >= vec[j].first) pq.push(vec[j].second); }// 선생님 코드 for (; j < N && C[i] >= vec[j].first; j++) { pq.push(vec[j].second); } 디버깅을 해보니, 제 코드는 vec[j].first가 테스트케이스의 1, 2, 5가 나왔구요, 선생님 코드는 1과 5가 나왔습니다. j++이라는 후위증감연산자에 초점을 맞춰서 분석을 해봤는데요, 저는 이거때문에 문제가 생겼다면 1을 제외한 2와 5가 나와야 한다고 생각합니다. 질문은 아래와 같습니다. 어떻게 해서 2가 스킵된 것인지 궁금합니다.조건문을 for문에 넣지 않고 if문 안에 넣게 되면 어떤 문제가 생기는지 궁금합니다. 테스트케이스는 정답처리가 되어서 오히려 더 헷갈립니다. http://boj.kr/b7ff0aa67f734625837cddfcf08e7abe
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 질문있습니다.
강의 듣고 나름 반례도 다 처리했다고 생각했는데 2%에서 넘어갈수가 없군요... 제가 어디서 정신줄을 놓았는지 모르겠습니다... 부탁드립니다... http://boj.kr/777d2db6af894cf2a9c3599f9638e7fd
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-l 질문있습니다.
문제를 풀어보았는데비주얼스튜디오에서는 통과가 되는데 백준에서는 런타임에러가 발생했습니다. 이유를 알고싶습니다.http://boj.kr/e5488fc5d35b4753bd9850e582e2a043
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-D 왜틀
어떤 테스트 케이스를 해도 맞는경우라고 생각되는데백준에 제출하면 왜 틀리다고 하는건지 모르겠습니다.로직은, 처음 인덱스와 마지막인덱스를 비교하며 하나씩 옮겨가는 로직입니다. 홀수와 짝수일때를 감안해서 배열사이즈/2 만큼 반복합니다. http://boj.kr/2be06b65af13421eac006e0e31828864
-
해결됨김영한의 실전 자바 - 중급 2편
강사님 질문이요. 평균적으로 하루에 얼마나 강의에 시간을 투자하시나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]말 그대로 입니다. 영한님은 하루에 자바 강의를 찍을 때 평균적으로 하루에 시간을 얼마나 투자하시나요?('어레이 리스트 에서 링크드리스트로 변환 할때 이런 것은 얼마나 생각을 해야지 나오지?(11:30~40)'라는 생각이 들어서 질문을 합니다.)
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
DP (BOJ 12865) 풀이에 관한 질문
import sys input = sys.stdin.readline n, k = tuple(map(int, input().split())) dp = [0 for _ in range(k+1)] minVal = sys.maxsize for _ in range(n): w, v = tuple(map(int, input().split())) dp[w] = v if w < minVal: minVal = w for i in range(minVal+1, k+1): maxVal = -1 for j in range(minVal, i): maxVal = max(maxVal, dp[j] + dp[i-j], dp[i]) dp[i] = maxVal print(dp[m])안녕하세요 강사님! 우선, 이 강의가 저한테 정말 도움이 되고 있음에 감사드립니다! 저는 위와 같이 dp 테이블을 2차원으로 할 생각을 못하고 풀었다가 시간초과가 났습니다. 아직 dp가 어렵게 느껴져서 dp 테이블 설계를 잘 못하겠네요..ㅠㅠ다행히 강의에서 dp 문제는 올려주신 강의만 제대로 숙지하면 될 것 같다고 하셨는데 dp 문제를 잘 풀기 위한 다른 팁 같은게 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
플루이드워셜 k i j 순서가 궁금합니다.
큰돌님 안녕하세요? 플루이드 워셜 푸는데 k i j 순서가 의미가 있나 궁금해서 질문 드리게 되었습니다. 저의 생각은 "모든쌍에 대해 계산하므로 k i j 의 순서는 별로 상관 없다" 입니다.그래서 코드를 이렇게 했더니 틀리더라구요? for(int k = 1;k<=n; k++) { for(int i = 1 ; i<=n;i++) { for(int j = 1 ; j<=n;j++) { if(dist[k][i]==1 && dist[i][j] ==1) dist[k][j]=1; else if(dist[k][i]== -1 && dist[i][j] == -1) dist[k][j]=-1; } } } 왜 큰돌님 해설 처럼 해야 하는지, 그리고 이 해설의 i k j? 순서로 해야하는지, 왜 그런지 차이가 궁금합니다.for(int k=1; k<=n; k++) for(int i=1; i<= n; i++) for(int j=1; j<= n; j++){ if(dist[i][k] == 1 && dist[k][j] == 1) dist[i][j] = 1; else if(dist[i][k] == -1 && dist[k][j] == -1) dist[i][j] = -1; }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-A 질문있습니다
solve()함수가 이해가 가지 않습니다.이미 dp[경찰차 1의 위치][경찰차 2의 위치] = 최소값 으로 getSum()을 통해서 dp값을 구했는데 그럼사건의 시작인 2부터 시작해서 w+1까지 dp의 값을 비교해서 어떤 경찰차가 이동하는지만 구하면 되는데 왜 dp[i][b] + d(a, i) < dp[a][i] + d(b, i) 로 다시 d()함수로 경찰차와 사건의 위치를 다시 계산해서 또 더해서 비교하나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-N 곱셈 코드 질문
http://boj.kr/8e0930f84de9404b8ff18b5733c4b88a큰돌님 제가 작성한 코드인데 계속 틀리는데이유가 나눠줘도 결국 수가 너무 커서 long long 범위를 넘어서서 그런 걸까요아니면 로직 자체가 틀린 걸까요 ..?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
재귀 풀이 질문이 있습니다 선생님
Combi함수의 매개변수로 vector<int> & v가 있는데 v앞에 &기호를 붙이는 이유를 잘 모르겠습니다.
-
미해결김영한의 실전 자바 - 중급 2편
직접 구현하는 배열 리스트1- 시작의 MyArrayListV1 구현 질문이요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]직접 구현하는 배열 리스트1- 시작의 MyArrayListV1 구현문제를 예외 처리하고 싶은데 아무리 해도 안돼는데 해결책좀 try { list.add("f"); System.out.println(list); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("배열의 범위를 벗어났습니다"); System.out.println("예외 발생 위치: " + e.getMessage()); e.printStackTrace(System.out); }그리고 아래 MyArrayListV1에 이렇게 작성하면 되긴 돼는데 저는 유지보수를 위해서 try~catch를 하고 싶거든요. 그래서이렇게 질문 남겨요public void add(Object e) { if (size >= elementData.length) { // 배열이 가득 찼는지 체크 throw new ArrayIndexOutOfBoundsException("용량을 초과했습니다. 현재 크기: " + size + ", 최대 용량: " + elementData.length); } elementData[size] = e; size++; }
-
미해결2주만에 통과하는 알고리즘 코딩테스트 (2024년)
백준 22988 번 문제
#include<iostream> #include <vector> #include <algorithm> using namespace std; int n, target; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> target; vector<int>vec(n); for (int i = 0; i < n; i++) { cin >> vec[i]; } int cnt = 0; sort(vec.begin(), vec.end()); int l = 0, r = n - 1; float liq = target / 2.f; int remain = 0; while (l < r) { if (target == vec[r]) { r--; cnt++; continue; } int sum =vec[l] + vec[r]; if (sum >= liq) { l++; r--; cnt++; } else { l++; remain++; } } if (l == r) { remain++; } cout << cnt+(remain/3); return 0; }이렇게 코드 작성했는데 결과는 맞는데 왜 제출하면 틀렸다고 나올까요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-U 질문있습니다 :)
안녕하세요 선생님 🙂 아래는 선생님의 강의를 듣기 전에 풀었던 코드입니다.선생님과의 차이점을 보면 visited배열 사용여부 하나가 있는데요, visited배열을 사용하지 않아도 되는 이유가 궁금합니다. http://boj.kr/18b50706174c498b994332e99064c1e5
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-R 질문있습니다 :)
안녕하세요 선생님 🙂 공식만 이해하면 최단거리 알고리즘문제를 맞추는 것은 정말 쉬운 것 같습니다. 아래는 선생님의 강의를 듣기 전에 먼저 풀이해본 코드인데요, 시간복잡도 부분에서 선생님과 큰 차이가 있습니다. 선생님께서는 하나의 함수로 모듈화하여 풀이해주셨는데요, (1. 왔다), (2.갔다)가 하나의 모듈로 재사용될 수 있다는 것이 이해가 되지 않습니다. 1~N번 마을에 있는 학생들은 전부 X번 마을로 갑니다.X번 마을에 도착한 학생들은 다시 각자의 마을로 돌아갑니다. 위의 2가지 조건 중, 선생님의 풀이로 2번은 이해가 되는데요, 1번이 이해가 되지 않습니다. 선생님께서 말씀해주신대로, 1번 조건을 보면 최단거리를 시작하는 시작점이 없기 때문에 플로이드 와샬이 떠올랐습니다. 이 풀이를 다익스트라로 실현시키기 위해서는 1부터 N까지 for문을 돌려서 하나씩 다익스트라를 돌려주는 방법 밖에 없다고 생각했습니다. 위의 로직이 어떻게 선생님처럼 간단하게 구현이 되는지 알려주시면 감사하겠습니다! http://boj.kr/19e70b6a650d432591cbf701fd1e75eb
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
백준 등급
안녕하세요. 다보지는 않았지만, 열심히 수강하고 있습니다 : ) 다름아니라 강의보던중에강사님 백준 등급이 어떻게 되시는지 호기심이 생겨 질문드립니다. 실례가 안된다면 알려주실 수 있나요?~세계 대회 진출자라고 하셔서 궁금하네요
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
채점이 안되요...
제가 푼것도 넣어보고. 소스코드에 있던것도 넣어보고 했는데. 채점 폴더에 집어넣어도.. 저렇게 나오네요... 흠..;; 바탕화면에서 하고 있는데..