묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨SQL 코딩테스트를 위한 첫 걸음
깃헙 데스크탑, MYSQL 워크벤치 연동
설명이 너무 생략되어 있어서 이해가 안됩니다.깃헙을 처음 써보는데중간에 생략한 부분이 많네요.윈도우 환경에서 다시 상세히 설명 부탁드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H 질문입니다
제가 짠 코드가 예제출력은 맞게 나오는데 제출했을 때 틀렸다고 나옵니다.강의 보기 전에 짠거라서 강사님과는 다른 방향으로 풀었지만 어디서 잘못됐는지 궁금합니다. #include <iostream> #include <string> using namespace std; string s; int mo[21]; int cnt; int main(){ while(true){ cin >> s; cnt=0; if(s == "end") break; //s가 높은 품질이 아니면 //1번째 조건 if(s.find('a') && s.find('e') && s.find('i') && s.find('o') && s.find('u') > 20){ cnt += 1; } //2번째 조건 fill(&mo[0], &mo[0]+21, 0); for(int i=0; i<s.size(); i++){ if(s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u'){ mo[i] = 1; } else{ mo[i] = 2; } } if(s.size()>=3){ for(int i=0; i<s.size()-2; i++){ if(mo[i] == mo[i+1] && mo[i+1] == mo[i+2]){ cnt+=1; } } } //3번째 조건 for(int i=0; i<s.size(); i++){ if((s[i] == s[i+1]) && s[i] != 'e' && s[i] != 'o'){ cnt += 1; } } //cnt가 1이라도 있으면 낮은 품질 if(cnt>=1){ cout << "<" << s << "> is not acceptable." << '\n'; } //그렇지 않으면 높은 품질 else{ cout << "<" << s << "> is acceptable." << '\n'; } } return 0; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 반례 부탁드립니다..
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 예제는 통과되었는데 틀려서 어디가 틀렸는지 계속 찾아보았지만 못 찾아 질문 남깁니다.http://boj.kr/1e440eca5c9e4ac69c978a0f9289603b
-
미해결[입문편] 안드로이드를 위한 코틀린(Kotlin) 문법
for 문 밖에서의 list 타입의 차이점
// 조건문// if else// whenfun main() { val testlist = mutableMapOf<String, Int>() testlist["a"] = 10 testlist["b"] = 50 testlist["c"] = 60 testlist["d"] = 100 testlist["e"] = 70 testlist["f"] = 30 // 50점이상 구하기 println(testlist.keys::class.java.simpleName) for (i in testlist){ println(i.key::class.java.simpleName) } } 위 코드처럼 작성 후 타입을 비교하였을 때 두가지의 타입이 다르게 나와있는데 그 이유를 모르겠습니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-C 런타임 에러(Segfault)
안녕하십니까 강사님. 항상 강의 잘 듣고 있습니다. 해당 회차의 강의를 듣기 전에 개인적으로 문제를 풀어보았으나, Segfault 런타임 에러가 발생하였습니다. 그 이유를 알고싶어 질문드립니다.#include <bits/stdc++.h> using namespace std; int n, h, nx, ny, max_h, cnt; int dx[] = { 0, 1, 0, -1 }; int dy[] = { 1, 0 ,-1, 0 }; int a[101][101]; bool visited[101][101]; vector<int> ret; void DFS(int x, int y) { visited[x][y] = true; for (int i = 0; i < 4; i++) { nx = x + dx[i]; ny = y + dy[i]; if (nx < 0 || nx >= n || ny < 0 || ny >= n) continue; if (a[nx][ny] > 0 && !visited[nx][ny]) { DFS(nx, ny); } } return; } int main() { ios_base::sync_with_stdio; cin.tie(NULL); cout.tie(NULL); // 지도 채우기 cin >> n; fill(&a[0][0], &a[0][0] + 101 * 101, 0); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> a[i][j]; } } max_h = *max_element(&a[0][0], &a[0][0] + 101 * 101); for (int i = 1; i < max_h; i++) { fill(&visited[0][0], &visited[0][0] + 101 * 101, false); cnt = 0; // a의 전체 높이를 1씩 내리기 for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { a[j][k]--; } } // 연산 for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { if (a[j][k] > 0 && !visited[j][k]) { DFS(j, k); cnt++; } } } ret.push_back(cnt); } // 결과 출력 cout << *max_element(ret.begin(), ret.end()) << "\n"; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘 교안 p67 질문이 있습니다
int main() { fill(&a[0], &a[10], 100); for(int i = 0; i < 10; i++){ cout << a[i] << " "; } cout << '\n'; fill(&b[0][0], &b[9][10], 2); for(int i = 0; i < 10; i++){ for(int j = 0; j < 10; j++){ cout << b[i][j] << " "; } cout << '\n'; } return 0;이 코드에서 fill(&a[0], &a[10], 100); 이 부분과 교안에 설명된 부분을 보면 알 수 있듯이 마지막에 쓰이는 인덱스는 포함되지 않아 실제로 a[9]까지 초기화가 가능한 것으로 이해를 하였습니다 그런데 왜 밑에 2차배열을 초기화하는 fill(&b[0][0], &b[9][10], 2);에서는 b[10][10]이 아닌 b[9][10]인지 궁금합니다. 또 b[9][9]로 수정하여 실행해본 결과가b[9][10]으로 수행한 결과와 같은 이유도 궁금합니다! 긴 질문 죄송합니다!
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
채점 프로그램 관련 질문
안녕하세요 !채점 프로그램 관련 문의가 있어서 글을 작성하게 되었습니다.전에 풀었던 문제들을 다시 풀어보는 과정에서 전에 100점이 나왔던 문제들을 다시 한번 채점 프로그램을 돌리니 wrong_answer이라고 나와서(기존의 AA파일을 돌림) 답안 소스로 테스트를 해보았는데 똑같이 wrong_answer 라고 계속 나오는 문제가 발생해서 글을 작성하게 되었습니다.감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-T 1학년, dp 배열의 초기화 관련
안녕하세요 큰돌님 1학년 문제를 풀었는데, dp배열 초기화의 유무에 따라 답이 갈립니다. 저는 0이라는 값도 결과값이 될 수 있는 값 중 하나라고 생각하여 dp배열을 -1로 초기화했습니다. 그런데 이런 경우 답이 틀렸다고 나옵니다.오히려, fill을 이용한 별도의 초기화 없이 기본적은 0으로 상태를 두면 맞다고 나옵니다.제가 어떤 점을 잘못 생각한건가요?감사합니다.소스코드 : http://boj.kr/aaa7dca582ec4827803e5b5826b6cdb5
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5 - O : 17406 질문 있습니다
구현하고 예제 및 반례를 넣어보고 디버깅도 나름 해봤는데 도저히 틀린 점을 못 찾겠습니다. 강의와 접근 방식이 조금 다르지만 비슷한 것 같은데 어떤 점에서 틀린 건지 알려주시면 감사할 것 같습니다 ㅠㅠ#include <bits/stdc++.h> using namespace std; int N, M, K, mp[51][51], temp_mp[51][51], ret=INT_MAX; vector<vector<int>> v; vector<int> choose_v; int visitied[10]={0,}; int dy[4]={1,0,-1,0}, dx[4]={0,1,0,-1}; void rotate(int y,int x,int sz){ for (int i=1;i<=sz;i++){ int start_y=y-i; int start_x=x-i; int start_val=temp_mp[start_y][start_x]; int temp_y=start_y; int temp_x=start_x; for (int j=0;j<4;j++){ int rotate_flag=i*2; while(rotate_flag--){ // printf("%d,%d ",temp_y,temp_x); temp_mp[temp_y][temp_x]=temp_mp[temp_y+dy[j]][temp_x+dx[j]]; temp_y+=dy[j]; temp_x+=dx[j]; } //printf("\n"); } temp_mp[start_y][start_x+1]=start_val; } } void choose(int sz,vector<int> &_choose_v){ // printf("sz: %d\n",sz); // for (int&i:_choose_v){ // printf("%d ",i); // } // printf("\n"); // printf("%d %d\n",visitied[0],visitied[1]); if (sz==K){ for (int i=1;i<=N;i++){ for (int j=1;j<=M;j++){ temp_mp[i][j]=mp[i][j]; } } for (int i=0;i<10;i++){ visitied[i]=0; } for (int&i:_choose_v){ rotate(v[i][0],v[i][1],v[i][2]); for (int j=1;j<=N;j++){ int sum=0; for (int k=1;k<=M;k++){ sum+=temp_mp[j][k]; } if (sum<ret){ ret=sum; } } } //printf("\n"); return; } for (int i=0;i<K;i++){ if (find(_choose_v.begin(),_choose_v.end(),i)==_choose_v.end()){ _choose_v.push_back(i); visitied[i]=1; choose(sz+1,_choose_v); visitied[i]=0; _choose_v.pop_back(); } } } int main() { cin >> N >> M >> K; for (int i=1;i<N+1;i++){ for (int j=1;j<M+1;j++){ cin >> mp[i][j]; } } for (int i=0;i<K;i++){ vector<int> temp_v; for (int j=0;j<3;j++){ int temp; cin >> temp; temp_v.push_back(temp); } v.push_back(temp_v); } choose(0,choose_v); // for (int i=1;i<N+1;i++){ // for (int j=1;j<M+1;j++){ // printf("%d ",temp_mp[i][j]); // } // printf("\n"); // } cout << ret; }choose()함수를 통해 순열을 만들고 choose()의 인자인 sz가 K가 되면, 순열의 순서에 맞게 rotate한 후 최솟값을 찾을 수 있도록 작성했습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1940 주몽 문제 메모리 초과 질문있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. https://www.acmicpc.net/source/share/f81085fda0c842898c7f440cecb12d4e 안녕하세요. 선생님 제가 선생님 풀이를 보기전에는 이렇게 2차원 배열을 통해서 구간별 누적합을 저장했는데 메모리 초과가 나와서 의문이였습니다. 무엇이 문제였을까요
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
친구인가에서 Union&Find 알고리즘 질문있습니다.
Union 함수에서if (fa != fb) unf[fa] = fb; 해주는 부분이 있는데왜 unf[fb] = fa 를 쓰는 것과의 차이가 있을까요?다른 웹사이트에서 찾아보니깐 fa < fb 일때 unf[fb] = fa하고이외에는 unf[fa] = fb 를 해주는 방식을 채택하고 있길래궁금해서 질문드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-F 기저사례 질문
안녕하세요 선생님 강의 잘 보고있습니다수업중 질문이 있는데요, 해당문제는 기저사례가if (k < 0) 과 if (index == 26) 이렇게 두부분이라고 이해했습니다.제가 여기서 가지는 질문은 총 두가지 인데 첫번째 질문은 왜 if (k < 0)일때 0을 반환하는지 이해하지 못하겠습니다.더이상 배울게 없는 경우에는 지금까지 만들어 놓은 mask 매개변수를 이용하여 count 함수를 호출을해서 ret 을 최대값으로 갱신해야하는것이 아닌가요?두번째 질문은 배우지 않고 넘아가는 경우에 ret 을 max 값으로갱신하는데 왜 이때 값을 갱신하는지 이해하지 못하겠습니다. 우선 함수를 int 형을 반환하는것이 아닌 void형으로 반환하는것으로 수정하여 제출하였습니다. 이렇게 하면 이해가 가는데, 혹시 위의 내용들을 조금더 깊게 설명해주실수 있으실까요?http://boj.kr/4925cb61cc264f87998b901fe8800e63
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
답이 3이 되어야 하지 않은가요?
제가 이해를 잘 못하는건지 단순 정렬후4번째 학생을 할인 받고 누적을 구하면 29가 나옵니다.그러면 3번째 학생까지 구매를 해줄수 있는것이니 답이 3이 나와야지 않을까 싶습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-C 코드 질문있습니다
안녕하십니까 큰돌님강의 영상 보고 해설 코드를 이해한 다음 스스로 살짝 바꿔서 작성해봤는데 거의 유사한데 제대로 실행이 안 되는데 어디가 잘못 됐을까요 ?? 그리고 백준에서는 먼저 메모리 초과라고 뜨네요ㅜhttp://boj.kr/4e41e999182545c7bbe392897d16055d
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
PriorityQueue 클래스를 사용해보고 싶은데 뭐 때문에 오류가 나는지 모르겠어요
테스트 5에서 오류가 나던데 뭐가 문제인지를 못찾겠어요ㅠ import java.util.PriorityQueue;import java.util.Queue;import java.util.Scanner;class Person implements Comparable<Person> {int id;int priority;public Person(int id, int priority) {this.id = id;this.priority = priority;}@Overridepublic int compareTo(Person o) {return o.priority - this.priority;}}public class Main {public static int solution(int n, int m, int[] arr) {int answer = 0;Queue<Person> queue = new PriorityQueue<>();for(int i=0; i<n; i++) {queue.offer(new Person(i, arr[i]));}while(!queue.isEmpty()) {Person tmp = queue.poll();answer++;if(tmp.priority == arr[m] && tmp.id == m) {return answer;}}return answer;}public static void main(String[] args){Scanner in = new Scanner(System.in);int n = in.nextInt();int m = in.nextInt();int[] arr = new int[n];for (int i=0; i<n; i++) {arr[i] = in.nextInt();}System.out.println(solution(n, m, arr));}}
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
[그리디 실전 문제] 최솟값을 만드는 괄호 배치 찾기 (백준 1541) - 반례를 못찾겠습니다 ㅠㅠ
안녕하세요!항상 좋은 강의 감사드립니다!덕분에 하루 하루 실력이 느는것이 느껴질 정도로 도움이 많이 되고있습니다! ㅎㅎ다름아니라 문제 36번 에서 같은 원리로 해결한 코드인데 백준에 재출했을 때 2% 에서 오답처리가 되었고,아무리 찾아봐도 잘못된 부분과 반례를 찾을 수 없어서 질문 남기게 되었습니다 ㅠㅠ아래는 제가 만든 코드입니다.항상 감사드립니다 :)import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String N = sc.next(); String[] split = N.split("-"); int result = 0; for (int i = 0; i < split.length; i++) { String[] A = split[i].split("\\+"); int sum = 0; for (int j = 0; j < A.length; j++) { sum += Integer.parseInt(A[j]); } result -= result == 0 ? sum * -1 : sum; } System.out.println(result); } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-E 질문드립니다.
4-E 직접 코딩한 링크입니다.http://boj.kr/1f336e6542f1478a96a0c31745c1196d 저는 비트연산자를 이용하긴 했는데입력 받으면서 1). 각 단어별 쓰인 알파벳 +1 ( 중복 x )2). 각 단어별 비트로 표현으로 전처리를 해준 후sort를 통해 가장 많이 이용한 알파벳 K 개 선정sort 된 알파벳으로 max_word 라는 K개 비트를 사용한 숫자를 만들고(word[i]&max_word)==word[i] 와 같을 경우 ret을 하나씩 올려줬습니다. 예제 및 추가 예제들은 다 맞는데 어디에서 틀린지 감이 안오는 것 같습니다.감사합니다.
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
j가 속한 for문 순회 질문드립니다.
j 순회에서 0부터 i-1까지 앞에서부터 순회하도록 해도 정답이 됩니다. 뒷 강의 들어보니까, 동전 문제처럼 동전이 무한한 경우는 앞에서부터 순회한다고 하셨고 최대 점수문제처럼 문제가 유한한 경우는 뒤에서부터 순회한다고 하셨습니다.(말씀하신 내용은 강의 10-6 섹션, 8:20쯤에서 나옵니다) 혹시 이 문제도 그거랑 연관이 있어서 강의에서처럼 뒤에서부터 순회하신 풀이로 푸신 건가요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이 코드도 맞을까요?
이렇게 풀어도 맞을까요?function solution(necc, course) { let answer = "YES"; let lst = []; for (c of course) { for (n of necc) { if (c === n) { lst.push(c); break; } } } let compare = lst.join(""); if (necc !== compare) answer = "NO"; return answer; } console.log(solution("ABC", "ACBC"));
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2 - R
마지막 값 출력 때 '\n'을 빼먹고 안해서 1시간 정도 헤맸습니다... 문제에서 요구한 사항이 아닌 거 같아서 딱히 하진 않았는데 다른 문제를 풀 때에도 명시돼 있지 않더라도 혹시 모르니 하는 것이 나을까요??또한 문제에 명시돼 있진 않으나 이진트리라고 가정하고 풀긴 했는데 이런 것도 혹시 문제의 예시를 보고 추정하면 될까요??