inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

for 문 밖에서의 list 타입의 차이점

미해결

[입문편] 안드로이드를 위한 코틀린(Kotlin) 문법

// 조건문 // if else // when fun 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) } } 위 코드처럼 작성 후 타입을 비교하였을 때 두가지의 타입이 다르게 나와있는데 그 이유를 모르겠습니다

  • kotlin
  • 코딩-테스트
창선 댓글 2 좋아요 0 조회수 293

2-C 런타임 에러(Segfault)

해결됨

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

안녕하십니까 강사님. 항상 강의 잘 듣고 있습니다. 해당 회차의 강의를 듣기 전에 개인적으로 문제를 풀어보았으나, 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"; }

  • c++
  • 코딩-테스트
이준형 댓글 1 좋아요 0 조회수 411

알고리즘 교안 p67 질문이 있습니다

미해결

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

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]으로 수행한 결과와 같은 이유도 궁금합니다! 긴 질문 죄송합니다!

  • c++
  • 코딩-테스트
김민우 댓글 1 좋아요 0 조회수 159

채점 프로그램 관련 질문

미해결

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

안녕하세요 ! 채점 프로그램 관련 문의가 있어서 글을 작성하게 되었습니다. 전에 풀었던 문제들을 다시 풀어보는 과정에서 전에 100점이 나왔던 문제들을 다시 한번 채점 프로그램을 돌리니 wrong_answer이라고 나와서(기존의 AA파일을 돌림) 답안 소스로 테스트를 해보았는데 똑같이 wrong_answer 라고 계속 나오는 문제가 발생해서 글을 작성하게 되었습니다. 감사합니다.

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

7-T 1학년, dp 배열의 초기화 관련

미해결

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

안녕하세요 큰돌님 1학년 문제를 풀었는데, dp배열 초기화의 유무에 따라 답이 갈립니다. 저는 0이라는 값도 결과값이 될 수 있는 값 중 하나라고 생각하여 dp배열을 -1로 초기화했습니다. 그런데 이런 경우 답이 틀렸다고 나옵니다. 오히려, fill을 이용한 별도의 초기화 없이 기본적은 0으로 상태를 두면 맞다고 나옵니다. 제가 어떤 점을 잘못 생각한건가요? 감사합니다. 소스코드 : http://boj.kr/aaa7dca582ec4827803e5b5826b6cdb5

  • c++
  • 코딩-테스트
  • dp
정태승 댓글 2 좋아요 0 조회수 362

5 - O : 17406 질문 있습니다

해결됨

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

구현하고 예제 및 반례를 넣어보고 디버깅도 나름 해봤는데 도저히 틀린 점을 못 찾겠습니다. 강의와 접근 방식이 조금 다르지만 비슷한 것 같은데 어떤 점에서 틀린 건지 알려주시면 감사할 것 같습니다 ㅠㅠ #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한 후 최솟값을 찾을 수 있도록 작성했습니다.

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

1940 주몽 문제 메모리 초과 질문있습니다!

해결됨

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. https://www.acmicpc.net/source/share/f81085fda0c842898c7f440cecb12d4e 안녕하세요. 선생님 제가 선생님 풀이를 보기전에는 이렇게 2차원 배열을 통해서 구간별 누적합을 저장했는데 메모리 초과가 나와서 의문이였습니다. 무엇이 문제였을까요

  • c++
  • 코딩-테스트
최종민 댓글 1 좋아요 0 조회수 297

친구인가에서 Union&Find 알고리즘 질문있습니다.

미해결

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

Union 함수에서 if (fa != fb) unf[fa] = fb; 해주는 부분이 있는데 왜 unf[fb] = fa 를 쓰는 것과의 차이가 있을까요? 다른 웹사이트에서 찾아보니깐 fa < fb 일때 unf[fb] = fa하고 이외에는 unf[fa] = fb 를 해주는 방식을 채택하고 있길래 궁금해서 질문드립니다.

  • java
  • 코딩-테스트
김태영 댓글 2 좋아요 0 조회수 491

4-F 기저사례 질문

해결됨

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

안녕하세요 선생님 강의 잘 보고있습니다 수업중 질문이 있는데요, 해당문제는 기저사례가 if (k < 0) 과 if (index == 26) 이렇게 두부분이라고 이해했습니다. 제가 여기서 가지는 질문은 총 두가지 인데 첫번째 질문은 왜 if (k < 0)일때 0을 반환하는지 이해하지 못하겠습니다. 더이상 배울게 없는 경우에는 지금까지 만들어 놓은 mask 매개변수를 이용하여 count 함수를 호출을해서 ret 을 최대값으로 갱신해야하는것이 아닌가요? 두번째 질문은 배우지 않고 넘아가는 경우에 ret 을 max 값으로갱신하는데 왜 이때 값을 갱신하는지 이해하지 못하겠습니다. 우선 함수를 int 형을 반환하는것이 아닌 void형으로 반환하는것으로 수정하여 제출하였습니다. 이렇게 하면 이해가 가는데, 혹시 위의 내용들을 조금더 깊게 설명해주실수 있으실까요? http://boj.kr/4925cb61cc264f87998b901fe8800e63

  • c++
  • 코딩-테스트
이명운 댓글 1 좋아요 0 조회수 382

답이 3이 되어야 하지 않은가요?

미해결

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

제가 이해를 잘 못하는건지 단순 정렬후 4번째 학생을 할인 받고 누적을 구하면 29가 나옵니다. 그러면 3번째 학생까지 구매를 해줄수 있는것이니 답이 3이 나와야지 않을까 싶습니다.

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

3-C 코드 질문있습니다

해결됨

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

안녕하십니까 큰돌님 강의 영상 보고 해설 코드를 이해한 다음 스스로 살짝 바꿔서 작성해봤는데 거의 유사한데 제대로 실행이 안 되는데 어디가 잘못 됐을까요 ?? 그리고 백준에서는 먼저 메모리 초과라고 뜨네요ㅜ http://boj.kr/4e41e999182545c7bbe392897d16055d

  • c++
  • 코딩-테스트
대기업목표 댓글 2 좋아요 0 조회수 312

PriorityQueue 클래스를 사용해보고 싶은데 뭐 때문에 오류가 나는지 모르겠어요

미해결

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

테스트 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; } @Override public 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)); } }

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

[그리디 실전 문제] 최솟값을 만드는 괄호 배치 찾기 (백준 1541) - 반례를 못찾겠습니다 ㅠㅠ

미해결

Do it! 알고리즘 코딩테스트 with JAVA

안녕하세요! 항상 좋은 강의 감사드립니다! 덕분에 하루 하루 실력이 느는것이 느껴질 정도로 도움이 많이 되고있습니다! ㅎㅎ 다름아니라 문제 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); } }

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

4-E 질문드립니다.

미해결

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

4-E 직접 코딩한 링크입니다. http://boj.kr/1f336e6542f1478a96a0c31745c1196d 저는 비트연산자를 이용하긴 했는데 입력 받으면서 1). 각 단어별 쓰인 알파벳 +1 ( 중복 x ) 2). 각 단어별 비트로 표현 으로 전처리를 해준 후 sort를 통해 가장 많이 이용한 알파벳 K 개 선정 sort 된 알파벳으로 max_word 라는 K개 비트를 사용한 숫자를 만들고 (word[i]&max_word)==word[i] 와 같을 경우 ret을 하나씩 올려줬습니다. 예제 및 추가 예제들은 다 맞는데 어디에서 틀린지 감이 안오는 것 같습니다. 감사합니다.

  • c++
  • 코딩-테스트
오상현 댓글 1 좋아요 0 조회수 368

j가 속한 for문 순회 질문드립니다.

해결됨

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

j 순회에서 0부터 i-1까지 앞에서부터 순회하도록 해도 정답이 됩니다. 뒷 강의 들어보니까, 동전 문제처럼 동전이 무한한 경우는 앞에서부터 순회한다고 하셨고 최대 점수문제처럼 문제가 유한한 경우는 뒤에서부터 순회한다고 하셨습니다. (말씀하신 내용은 강의 10-6 섹션, 8:20쯤에서 나옵니다) 혹시 이 문제도 그거랑 연관이 있어서 강의에서처럼 뒤에서부터 순회하신 풀이로 푸신 건가요?

  • java
  • 코딩-테스트
재영 댓글 2 좋아요 0 조회수 295

이 코드도 맞을까요?

미해결

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

이렇게 풀어도 맞을까요? 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"));

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

2 - R

미해결

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

마지막 값 출력 때 '\n'을 빼먹고 안해서 1시간 정도 헤맸습니다... 문제에서 요구한 사항이 아닌 거 같아서 딱히 하진 않았는데 다른 문제를 풀 때에도 명시돼 있지 않더라도 혹시 모르니 하는 것이 나을까요?? 또한 문제에 명시돼 있진 않으나 이진트리라고 가정하고 풀긴 했는데 이런 것도 혹시 문제의 예시를 보고 추정하면 될까요??

  • c++
  • 코딩-테스트
자르트 댓글 1 좋아요 0 조회수 257

알고리즘 교안 P.42 질문

미해결

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

end()가 문자열의 마지막 요소 그 다음을 가리키는 거라고 하셨는데 그럼 P.42에서 reverse()할 때도 reverse(a.begin(), a.end())가 아닌 reverse( a.begin(), (a.end()-1) )로 써도 문자열이 완전히 뒤집어 질 수 있지 않나요?

  • c++
  • 코딩-테스트
박성찬 댓글 1 좋아요 0 조회수 181

잃어버린 강아지 방향 문제

해결됨

자바 코딩테스트 - it 대기업 유제

문제에서 북쪽(지도에서 위쪽)으로 이동한다고 했는데 북쪽으로 이동이면 이동하게되는 처음 방향은 x = 0 , y = -1 이 아닌가요? x = -1 , y = 0 인 이유를 모르겠습니다.

  • java
  • 코딩-테스트
밤의멜로디 댓글 2 좋아요 0 조회수 439

코드의 이 부분을 다르게 풀었는데, 괜찮은지 질문드립니다!

해결됨

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

private static void bfs() { while (!queue.isEmpty()) { int size = queue.size(); for (int i = 0; i < size; i++) { Point now = queue.poll(); for (int j = 0; j < 4; j++) { int nextX = now.x + dx[j]; int nextY = now.y + dy[j]; if (nextX >= 0 && nextY >= 0 && nextX < n && nextY < m) { if (board[nextX][nextY] == 0) { board[nextX][nextY] = 1; day[nextX][nextY] = day[now.x][now.y] + 1; queue.offer(new Point(nextX, nextY)); } } } } } } 코드의 bfs 메서드이고, 큐의 사이즈만큼 순회하는 로직 int size = queue.size(); for (int i = 0; i < size; i++) { Point now = queue.poll(); 을 추가했습니다. 결과나 과정 측면에서 봤을 때, 강의에서의 코드와 무슨 차이가 있는지 모르겠는데, 혹시 성능 상에서 기존 코드보다 많이 떨어지는 코드일까요? 이렇게 작성해도 되는지 궁금합니다. 이전 bfs 강의에서는 이렇게 큐의 사이즈를 구해서 순회하는 로직을 사용하더라구요.

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

인기 태그

인프런 TOP Writers

주간 인기글