묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
백준 2436 문제에서..
왜 maxg = gcd * lcm 을 생각하셨는지..왜 반복을 돌 때 maxg ** 0.5 를 생각하셨는지.. 이해가 잘 안되네요 ㅠ..
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
While 문 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.ㅇ 안녕하세요. 강의 잘 듣고있습니다.while((pos = input.find(delimiter)) != string::npos)코드가 잘 이해가 안됩니다. input에서 delimiter를 찾는 부분이 input.find(delimiter)인데!= string::pos 부분이 이해가 안됩니다. npos는 무엇을 의미하는 건지 궁금합니다. 감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-B. 유기농 배추 질문있습니다.
안녕하세요 선생님. 해당 질문에 대해서 저는 for 반복문을 이용해서 풀었습니다.선생님께서는 while문을 이용해서 푸셨는데, 이러한 상황에서 시간복잡도 , 코드 효율성 등이 for문을 사용하는게 좋은지 while문이 좋은지 궁금합니다.또한, while문의 시간 복잡도를 구하는게 조금 헷갈리는데 간단하게라고 설명 해주시면 감사하겠습니다.#include <bits/stdc++.h> using namespace std; const int MAX_K = 2500; const int MAX_M = 50; const int MAX_N = 50; const int dy[4] = {-1, 0, 1, 0}; const int dx[4] = {0, 1, 0, -1}; int T, N, M, K; bool IsMovable(int dirY, int dirX, int visited[MAX_N][MAX_M], int Map[MAX_N][MAX_M]) { if (dirY >= N || dirX >= M || dirY < 0 || dirX < 0) return false; if (visited[dirY][dirX] != 0) // 방문한 적 있으면 return false; if (Map[dirY][dirX] != 1) // 갈 수 없는 곳이면 return false; return true; } void Go(int cy, int cx, int visited[MAX_N][MAX_M], int Map[MAX_N][MAX_M]) { visited[cy][cx] = 1; for (int i = 0; i < 4; i++) { int ny = cy + dy[i]; int nx = cx + dx[i]; if (IsMovable(ny, nx, visited, Map)) Go(ny, nx, visited, Map); } } int main() { cin >> T; for (int i = 0; i < T; i++) { int Map[MAX_N][MAX_M]{}; int visited[MAX_N][MAX_M]{}; int zoneCnt = 0; cin >> M >> N >> K; for (int j = 0; j < K; j++) { int diry = 0; int dirx = 0; cin >> diry >> dirx; Map[diry][dirx] = 1; } for (int currY = 0; currY < N; currY++) { for (int currX = 0; currX < M; currX++) { if (IsMovable(currY, currX, visited, Map)) { zoneCnt++; Go(currY, currX, visited, Map); } } } cout << zoneCnt<< endl; } }
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
코딩테스트 초보자 .. 입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요:) 강의 너무 잘듣고있습니다.혹시 실제 프로그래머스 툴로 코딩테스트를 본다면,빌트인 함수 (예, Character.isAlphabetic..) 들은이클립스타 인텔리제이처럼 자동완성 되나요? 검색은 안될지라도.. 혹 Java api docs 라도 제공 되는지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-L combi 방식으로 했을때 시간초과
http://boj.kr/71e5ee8f28ea4c35a38d8732c08dbca3안녕하세요.주몽 문제를 combi 방식으로 했을때 시간초과가 나는 이유는 무엇일까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-H 질문
http://boj.kr/f20dcd82536849b794b2b9f0551683f9 안녕하세요 큰돌님이해가 안가는 부분이 있어서요1 2 3 1 2이렇게 있으면,마지막 부분 3 1 2은 등차수열의 합을 이용한(3) (1) (2) (3, 1) (1, 2) (3, 1, 2)이렇게 경우의 수를 모두 세는데,왜 1 2 3 같은 경우(1) (1, 2) (1, 2, 3) 이런 경우만 고려하는 걸까요?왜 (1) (2) (3) (1, 2) (2, 3) (1, 2, 3) 이렇게 세지 않는걸까요...
-
해결됨김영한의 실전 자바 - 중급 2편
섹션 10. List.of()
복습하다 문득 이 코드를 보고 생각이 들었습니다. ArrayList<MyUser> list = new ArrayList<>(List.of(myUser1, myUser2, myUser3));List<MyUser> list1 = List.of(myUser1, myUser2, myUser3);List로 반환되는 건 맞는 거 같은데... static <E> List<E> of(E e1, E e2, E e3) { return ImmutableCollections.listFromTrustedArray(e1, e2, e3); }List.of()는 분명 List타입으로 반환이 되는데 ArrayList에 어떻게 들어가는 건가요?List가 ArrayList를 받을 수는 있지만, 그 반대는 안 되는 거 아닌가 해서요!!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 선생님 reverse 함수 사용하지 않고 문제풀이 해봤는데...
안녕하세요 선생님. reverse 함수 사용하지 않고 문제 풀이 해봤는데 dev c++에서는 예제 잘 돌아갔는데백준에서는 틀렸다고 나와서 질문 드립니다!왜 오류가 나오는지 , reverse 사용하지 않고 괜찮게 작성한 코드인지 궁금합니다! http://boj.kr/5ee18678eb5c4dd98d782a257769f061
-
해결됨김영한의 실전 자바 - 중급 2편
연결리스트 배열 선언?
해시 알고리즘6-해시 충돌 구현 파트에서 LinkedList<Integer>[] buckets = new LinkedList[CAPACITY];이런 코드가 등장했는데요. 제가 앞선 강의에서 이런 내용을 놓친 것인지는 잘 모르겠지만...ㅠ제네릭을 통해 선언하는 것인데new LinkedList<>()[CAPACITY]; 를 하면 안되는 이유가 무엇인가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-O 질문 있습니다
큰돌 선생님이 제 멘토라고 생각하고 열심히 배우는 중입니다 ㅎㅎ다음은 제 코드입니다.http://boj.kr/9f42d776453a4633b13e660610a7eb74cnt가 찾은 ret 이상이면 (제 코드에서는 mn) return하는 코를 안 적으면 왜 시간초과가 나는지 잘 모르겠습니다.문제를 풀 때 최악의 상황을 생각해서 그 최악의 상황을 돌렸을 때 제한 시간안에 돌아가야 한다고 생각합니다.만약 정답이 가로선 3개를 추가하는 것인 최악의 상황에서 이 코드가 유의미한 시간복잡도 차이를 만들어내지 못하는게 아닌가 하고 생각합니다. 이 문제 같은 경우 테스트케이스가 그러한 방식으로 짜여져있어서 통과와 시간초과라는 차이를 만드는 것인지 궁금합니다.전에 선생님께서 가르쳐주신 조합 코드를 생각해보면 한번 확인한 위치는 다시는 확인을 안 하도록 start+1을 해서 코드를 작성했던 기억이 납니다. 하지만 이 코드는 확인했던 행 - 1까지는 확인을 안하도록 here을 사용하지만 열, 즉 j는 1부터 확인함으로써 중복으로 검사하고 있습니다. 왜 무한루프가 안 생기는지 이해가 잘 되지 않습니다.
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
nx,ny에 대한 질문
if(nx>=0 && nx<n && ny>=0 && ny<n && arr[nx][ny]>=arr[i][j]) {flag = false;break;}이 조건에 대해 질문이 있습니다.nx>=0 && nx<n && ny>=0 && ny<n 이것이 가장자리를 찾는 조건식인 것은 알겠습니다.그런데 if조건식이 and연산자로 이루어져있어서 하나라도 false이면 if문이 돌아가지 않는것으로 알고있습니다.그럼 가장자리에 있는 값들 중에 arr[i][j]보다 큰 값들만 if문을 돌면서 flag를 false로 주는 것인데가장자리가 아니면서 arr[i][j]보다 큰 값들은 어디서 비교를 하나요?? 또, arr의 n의 개수를 그냥 n으로 잡으면 가장자리를 0으로 초기화를 언제 시키는 것인지 궁금합니다 제가 처음 풀었을때 arr을 arr[n+2][n+2]로 잡고 (i=1;i<n;i++)로 이중for문을 돌려 풀었습니다 이렇게 풀어도 되는건가요?
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
adtFileIO 예제코드관련 질문 있습니다.
코드를 분석하다 드는 의문점이 있어 질문드립니다.실제 자료노드와 이를 추상화 한 MYNODE로 데이터베이스가 구축되어 있는데 여기에 MYNODE를 기준으로 파일 입출력을 연동시킨 것이 이번 예제의 핵심이라고 보입니다. 이렇게 한 이유가 파일의 일부를 메모리로 옮겨올 수 있기 때문(캐싱)이라고 하셨는데 이 캐싱의 정확한 개념이 궁금합니다. 해당 예제의 offset변수를 보면 파일의 처음부터 끝까지 모든 자료에 대하여 카운트정보를 담고 있는 것으로 보입니다. 즉 파일의 일부가 아닌 전부가 MYNODE기준 메모리상 데이터에 연동되고 이 후 선택노드의 추가 데이터만 메모리상데이터에 추가되는 것으로 보이는데 캐싱이라는 개념이 파일데이터들의 일부만 메모리에 옮기는 것이 아니라 일단 모든 목록(인덱스)를 올린 후 선택 노드의 데이터만 추가하는 개념인 것인지. 아니면 원래는 파일데이터의 목록까지도 일부만 올리는 개념인데 예제에서는 간략화하여 설명된 것인지 궁금합니다.SaveNewDataToFile()함수를 살펴보면 pTmp->bNew 불리언 변수가 true일 때 파일쓰기가 일어나는데 이는 기존 데이터가 존재하는 노드인 경우 데이터를 수정시 파일쓰기가 되지 않는 오류가 있지 않나 생각됩니다. 즉 commit이 노드데이터 수정 후 일어나지 않으면 프로그램 종료시 호출되는 SaveNewDataToFile()함수로는 수정데이터의 파일출력이 일어나지 않는 것 아닌가 하는 의문이 듭니다. 두 째 질문은 강의 중에 언급해 주신 부분을 확인했습니다. 감사합니다. 감사합니다.
-
미해결김영한의 실전 자바 - 중급 2편
직접 구현 하는 컬렉션 코드는 실제 내부 구현과 유사하게 구현하시는건가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]직접 구현 하는 컬렉션 코드는 실제 내부 구현과 유사하게 구현하시는건가요?예를 들면 배열 리스트에서 capacity를 넘어서 데이터를 추가 시에 기존 배열의 50% 정도 증가하는 방법을 사용한다고 pdf에 나와있는데 이런 부분들이 실제 구현과 같은지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘 교안 62 페이지 관련 질문드립니다!
알고리즘 교안 에서 질문드립니다!혹시 62 페이지 타입변환시 주의할점에서 p가 어떤건지 궁금합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-O 질문있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 큰돌님. 제 코드가 "틀렸습니다"로 뜨는 이유를 모르겠습니다..... http://boj.kr/d1dcc4d3cd2645619e493eab43591718 감사합니다:)
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
코딩센세님.. 이거 제가 이해를 잘못하는걸까요?
29:10분에보면 "176 ~ 177까지의 2의 제곱수가 몇 번 포함되어 있는지 나오겠네요"라고 하시는데 제가 생각할 땐"176 ~ 177까지의 2의 제곱이면서 최대 약수의 합"이라고 생각하는데 두 개의 말은 다른 말 아닌가요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-E 기저조건 질문있습니다
안녕하세요 선생님 🙂함수에 있는 기저조건과 4가지 숫자가 같을 경우에 리턴 값으로 string(1, a[y][x])를 주셨는데요, 1 또는 0이라고 말씀해주셨지만 이해가 가지 않습니다. string 키워드로 교안과 구글을 찾아봤고, xstring으로 타고 들어가 분석해보려고도 했지만 마땅한 답을 찾지 못하였습니다.string함수 관한 설명이나 참고할 수 있는 교안의 목차를 알려주신다면 정말 감사하겠습니다 🙂 추가로, 함수 안에 있는 string ret = "";를 전역으로 빼면 값이 이상해지더라구요. 이유를 잘 모르겠어서 질문드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-P 연구소 solve()>fill() 함수에서 전역변수 vector<> v가 초기화 될 수 있나요?
제가 코드안되는 부분 찾다가 solve()>fill(visited) 함수에서 전역변수 vector<> v의 크기가 0으로 초기화 되는 문제를 겪었습니다https://www.acmicpc.net/source/78783272상세한 문제는 위 코드링크에 주석 달아놓았습니다무언가 잘못한 거같은데 모르겠네요// 개요 vector<pair<int, int>> v; int solve(){ // 여기서 visited 아니라 v가 초기화됨 fill(&visited,,) } int main(){ max(ret,solve()); }
-
미해결김영한의 실전 자바 - 중급 2편
LinkedHashSet 구조에 관해 질문이 있습니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]LinkedHashSet은 HashSet과 같은데 Node를 추가해서 입력 순서를 유지한다 들었습니다.그럼 만약에 HashIndex가 같은 경우(해시 충돌) Node도 HashSet과 같이 List 형식으로 저장이 되는게 맞을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5 - B 질문입니다!
#include <bits/stdc++.h> using namespace std; string str, fire_str; string ret=""; int main() { cin >> str >> fire_str; for (char i:str){ ret+=i; if (i==fire_str[fire_str.size()-1]){ if (ret.size()-fire_str.size()<0) continue; else if (ret.substr(ret.size()-fire_str.size(),fire_str.size())==fire_str){ ret.erase(ret.size()-fire_str.size(),fire_str.size()); } } } if (ret=="") cout << "FRULA"; else cout << ret; }out of range 제출하게 되면 out of range 에러가 뜨는데 이유를 모르겠습니다. 어디서 나는 건가요??