inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

이 코드도 괜찮을까요 ?

미해결

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. const input = `5 5 1 3 1 2 3`.split("\n"); let M = Number(input[0].split(" ")[1]); let arr = input[1].split(" ").map((str) => Number(str)); function solution(arr) { let count = arr.filter((num) => num <= M).length; // 5 let p1 = 0; let p2 = 1; let sum = arr[p1] + arr[p2]; // 4 while (p1 !== p2) { if (sum < M) { count++; p2++; sum += arr[p2]; } else if (sum === M) { count++; sum -= arr[p1]; p1++; } else if (sum > M) { sum -= arr[p1]; p1++; } } return count; } console.log(solution(arr));

  • javascript
  • 코딩-테스트
디건버 댓글 1 좋아요 0 조회수 532

이 코드도 괜찮을까요 ?

미해결

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 수업해주셨던 코드랑 다른건 없을까요 ? const input = `8 6 1 2 1 3 1 1 1 2`.split("\n"); let M = Number(input[0].split(" ")[1]); let arr = input[1].split(" ").map((str) => Number(str)); function solution(arr) { let p1 = 0; let p2 = 1; let sum = arr[p1] + arr[p2]; let count = 0; while (p2 < arr.length) { if (sum < M) { p2++; sum += arr[p2]; } else if (sum > M) { sum -= arr[p1]; p1++; } else if (sum === M) { sum -= arr[p1]; p1++; count++; } } return count; } console.log(solution(arr));

  • javascript
  • 코딩-테스트
디건버 댓글 1 좋아요 0 조회수 440

질문있습니다!!

미해결

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

안녕하세요 선생님 저는 59번 문제를 참고하여 진행을 하였습니다. 제가 작성한 코드중에서 뭐가 틀린건지 봐주시면 감사드리겠습니다. 틀린 부분을 잘 몰라 질문 올립니다. #include <iostream> #include <vector> using namespace std; int n, tatal = 0; int ch[11]; int a[11]; void DFS(int L, int sum) { int sum2 = 0; if (L == n + 1) { for (int i = 1; i <= n; i++) { if (ch[i] == 1) { sum = sum + a[i]; } if (ch[i] == 0) { sum2 = sum2 + a[i]; } } if (tatal - sum == sum2) { cout << "YES"; } else { cout << "NO"; } } else { ch[L + 1] = 1; DFS(L, sum); ch[L + 1] = 0; DFS(L, sum + a[L]); } } int main() { cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; tatal = tatal + a[i]; } DFS(1, 0); //시작점 합 }

  • c++
  • 코딩-테스트
sang ji Choi 댓글 2 좋아요 0 조회수 476

unique 교안 s 벡터 erase 질문

미해결

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

vector<int> s {4, 3, 3, 5, 1, 2, 3}; s.erase(unique(s.begin(),s.end()),s.end()); for(int i : s) cout << i << " ";의 결과가 4,3,5,1,2(,2,3 제거) 이렇게 되어야 하지 않나요? 왜 4,3,5,1,2,3으로 나오는 건지 잘 모르겠습니다.

  • c++
  • 코딩-테스트
조현성 댓글 2 좋아요 0 조회수 370

재귀를 이용한 순열 코드 질문

해결됨

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

재귀를 이용한 순열 코드를 학습하면서 이와 관련된 백준 문제를 풀어보려고 하였습니다! 백준 15649 N과 M(1) 문제 같은 경우 순열을 출력하는 문제여서 학습한 코드를 사용하면 가능할 것이라고 생각했습니다. 그런데 교안에 있는 코드는 순열의 오름차순이 보장이 안되는 것 같습니다. 교안에 있는 코드를 최대한 활용해서 백준 15649번 문제를 풀고 싶은데, 순서가 오름차순이 되도록 순열을 출력하려면 교안의 코드를 어떻게 수정해야 할지 모르겠습니다! https://www.acmicpc.net/problem/15649

  • c++
  • 코딩-테스트
cho766 댓글 2 좋아요 0 조회수 302

정렬을 꼭 해야하는 이유

미해결

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

정렬을 하고 안하고 정답이 다르게 나오는데 그 이유가 무엇인가요?? 완전 탐색이라 모든 경우를 탐색하는데 정렬을 해야하는 이유가 궁금합니다!!

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

6-G 자료형 질문

미해결

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

#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<vector> #include<algorithm> #include<queue> #include<numeric> #include<map> #include<cstring> using namespace std; typedef long long ll; long double X, Y; int Z; bool check(ll mid) { double total = X; double win = Y; total += mid; win += mid; int num = (win / total) * 100; return Z < num; } int main() { cin >> X >> Y; Z = (Y / X) * 100; int start = 1; int end = 1000000000; int ans = -1; while (start <= end) { ll mid = start + end; mid /= 2; if (check(mid)) { ans = mid; end = mid - 1; } else start = mid + 1; } cout << ans; return 0; } 다음과 같이 작성했습니다. Z = (Y / X) * 100; 이 부분에서 X,Y가 double이면 오답 long double이면 정답이 나옵니다 . double로 선언하면 어떤 문제점이 존재하나요??

  • c++
  • 코딩-테스트
masiljangajji 댓글 2 좋아요 0 조회수 337

2-q 질문

미해결

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

http://boj.kr/8eda4400f8474a6daf339737ce6eda82 선생님 제가 dfs시 n*m범위를 벗어나면 1을 return하는 코드를 짜보았습니다. 그런데 범위에 벗어나면 이라는 if 문에 제 코드가 접근을 못합니다. 혹시 이유를 찾아주시면 정말 감사하겠습니다!!

  • c++
  • 코딩-테스트
kkim360 댓글 2 좋아요 0 조회수 285

8 - G 탑다운 방식으로는 안될까요?

해결됨

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

안녕하세요! 17623번 괄호 문제를 풀다가 어려운 점이 생겨 질문드리게 되었습니다. 저는 탑다운 방식으로 접근을 해보았는데요. 괄호를 넣을 수 있는 경우의 수에 따라 dmap값을 비교하여 최소값을 찾는 방식으로 풀어보았습니다. 하지만 서브태스크3을 통과하지 못하네요. 무엇이 문제일까요...? 고민해보아도 쉽게 찾아지지 않습니다. #include<iostream> #include<vector> #include<string> #include<algorithm> using namespace std; int T; string dp[1001]; bool check(string before, string after){ if(before == "" && after == "") return false; if(before == "") return true; if(before.size() > after.size()) return true; else if(before.size() < after.size()) return false; return before > after; } string go(int num) { if(num == 0) return ""; if(dp[num] != "N") return dp[num]; if(num - 1 >= 0) // 1빼기 -> 0이 아니라면 무조건 통과하는 조건 { // dp[i]에 직접 값을 넣는다. string temp = go(num - 1); if(check(temp + "12", "12" + temp)) dp[num] = "12" + temp; else dp[num] = temp + "12"; } if(num - 2 >= 0) // 2빼기 { string temp = go(num - 2); if(check(dp[num], temp + "34")) dp[num] = temp + "34"; if(check(dp[num], "34" + temp)) dp[num] = "34" + temp; } if(num - 3 >= 0) // 3빼기 { string temp = go(num - 3); if(check(dp[num], temp + "56")) dp[num] = temp + "56"; if(check(dp[num], "56" + temp)) dp[num] = "56" + temp; } if(num % 2 == 0) // 2로 나눔 { string temp = go(num / 2); if(check(dp[num], "1" + temp + "2")) dp[num] = "1" + temp + "2"; } if(num % 3 == 0) // 3로 나눔 { string temp = go(num / 3); if(check(dp[num], "3" + temp + "4")) dp[num] = "3" + temp + "4"; } if(num % 5 == 0) // 5로 나눔 { string temp = go(num / 5); if(check(dp[num], "5" + temp + "6")) dp[num] = "5" + temp + "6"; } return dp[num]; } string getPassing(string num) { string s = ""; int i = 0; while(i < num.size()) { char digit = num[i]; string d = ""; if(digit == '1') d = "("; else if(digit == '2') d = ")"; else if(digit == '3') d = "{"; else if(digit == '4') d = "}"; else if(digit == '5') d = "["; else if(digit == '6') d = "]"; s += d; i++; } return s; } int main() { fill(dp, dp + 1001, "N"); cin >> T; for(int i = 0; i < T; i++) { int N; cin >> N; string answer = go(N); cout << getPassing(answer) << "\n"; } return 0; }

  • c++
  • 코딩-테스트
staktree 댓글 2 좋아요 0 조회수 267

2-s

미해결

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

선생님 2s 문제에 입력이 65 31 43 64 53 45 라고 들어올경우. 한번에 가장 많은 컴퓨터를 해킹할 수 있는 컴퓨터의 번호는 1-3-5-4-6으로 5가지 입니다. 이때 만약 선생님이 쓰신 코드처럼 dfs에 visited를 설정한다면 1-3-4-6을 탐색한후 1-3-5-4-6을 탐색하려면 4가 이미 visited로 겹치기에 1-3-5-4-6경로를 탐색을 안하게되는것 아닌가요??

  • c++
  • 코딩-테스트
kkim360 댓글 2 좋아요 0 조회수 240

새로운 배열 만들때 질문입니다

미해결

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

안녕하세요, 선생님 1) m 변수에 바로 arr 정렬해서 넣어서 원래 값과 비교하면 왜 답이 안나오는 걸까요..? function sol(arr){ let ans =[]; let m = arr.sort((a,b)=>a-b); for (let i = 0; i < arr.length; i++){ if (arr[i] !== m[i]) ans.push(i+1); } return ans; } let m = [120, 125, 152, 130, 135, 135, 143, 127, 160]; console.log(sol(m)); 2) let m = arr; arr.sort((a,b)=>a-b); 이렇게 했을때도 답이 안나오는 이유는 무엇일까요? slice()로 복사해야하는 이유가 있나요?

  • javascript
  • 코딩-테스트
sso01153 댓글 3 좋아요 1 조회수 588

혹시 이건 왜 안되는지 말씀해주실 수 있나요??

해결됨

IT 기업 취업을 위한: 코딩테스트 혼자서 정복하기 (C/C++)

#include <stdio.h> int max(int x, int y) { if (x > y) { return x; } else if (y > x) { return y; } else { return x; } } int min(int x, int y) { if (x < y) { return x; } else if (y < x) { return y; } } int main(void) { int dp[19] = { 0,-1,-1,1,-1,1 }; int i = 0; for (i = 6; i < 19; i++) { if (dp[i - 3] < 0 && dp[i - 5] < 0) { dp[i] = -1; continue; } else if (dp[i - 3] >= 1 && dp[i - 5] >= 1) { dp[i] = min(dp[i - 5] + 1, dp[i - 3] + 1); continue; } else if (dp[i - 3] > 0 || dp[i - 5] > 0) { dp[i] = max(dp[i - 3] + 1, dp[i - 5] + 1); continue; } } for (i = 0; i < 19; i++) { printf("값:%d 개수:%d\n",i, dp[i]); } return 0; }

  • c
  • 코딩-테스트
석종엽 댓글 2 좋아요 1 조회수 568

[자릿수의 합] 질문입니다.

해결됨

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

안녕하세요 계속 오류가 떠서 여쭤봅니다. 이 코드는 어떤 부분이 잘못되었는지 잘 모르겠습니다. import sys import os current_path=os.getcwd() sys.stdin=open(current_path + "\\python\\코딩테스트 강의 내용\\01 코드 구현력\\복습 파일\\" + "input.txt", "rt") N=int(input()) num_arr=list(map(int, input().split())) def digit_sum(x): result=0 for idx in range(0, len(str(x))): result+=int(str(x)[idx]) return result # 각 자리수 더한 합 for idx in range(N): arrMax=-21470000000 answer=0 if digit_sum(num_arr[idx])>arrMax: arrMax=digit_sum(num_arr[idx]) answer=num_arr[idx] print(answer)

  • python
  • 코딩-테스트
xudegloss 댓글 1 좋아요 0 조회수 405

2-F 맞왜틀 질문 있습니다ㅠㅠ

미해결

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

안녕하세요, 선생님! 많이 부족하지만 천천히 선생님 수업 따라가고 있는 학생입니다.. 다름이 아니라 해당 문제를 풀면서 선생님께서 제시해주신 반례나 백준 질문에 올라온 반례도 대입 했을 때 기대값을 잘 출력하고 있는데 왜 맞왜틀인지 모르겠습니다ㅠㅠ 코드 한 번 피드백 부탁드립니다! 소스코드 - http://boj.kr/9bc5b7b855044809bdbfa4d5762b69aa 만약 N = 10 M = 3 J = 5 일 경우 10 > 5 > 1 > 7 > 2 순으로 사과가 떨어진다고 가정 했을 때 그림으로 그려보면 아래의 이미지와 같이 바구니에 담을 수 있는 최소 이동값이 21 이 도출되지 않나 생각하는데, 혹시 제가 잘못 이해하고 있는걸까요?

  • c++
  • 코딩-테스트
슴발 댓글 1 좋아요 0 조회수 553

4-J k=n*j+i로 하면 식이 어떻게 될까요

해결됨

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

세로탐색 처음에 이렇게 했는데 안되네요 인덱스가 어렵네요 ㅠㅠ

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

4-I 이렇게 풀었는데 코테에서 ios_base::syn~ 를 쓸 일이 있나요?

해결됨

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

코드입니다 추가하니까 시간초과 안되고 풀렸네요 #include<iostream> using namespace std; string s; int n,x,m; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n; for(int i=0;i<n;i++){ cin >> s; if(s=="add"){ cin >> x; m |= (1<<x); }else if(s=="remove"){ cin >> x; m &= ~(1<<x); }else if(s=="check"){ cin >> x; if(m&(1<<x))cout<<"1\n"; else cout<<"0\n"; }else if(s=="toggle"){ cin >> x; m ^= (1<<x); }else if(s=="all"){ m = (1<<21)-1; }else if(s=="empty"){ m = 0; } } }

  • c++
  • 코딩-테스트
조현성 댓글 1 좋아요 1 조회수 480

4-H segmentation fault 뜨는이유가

해결됨

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

-1,0,1,0 0,1,0,-1 이렇게 습관처럼 쓰다 이번에 걸렸네요 ㅋㅋㅋ 비트마스킹에 맞춰서 했어야했네요 ㅠㅠ

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

2-Q 2636 치즈

미해결

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

선생님 어떻게 하면 다르게 풀 수 있을까 생각하던 중 dfs 자체에 치즈가 있는 곳을 0으로 바꿔주면서 방문처리하면 어떨까싶은 발상으로 다르게 풀어봤는데 95%쯤에서 틀렸다고 뜨네요 어떤 반례가 있는지 도저히 못 찾겠습니다. 도와주세요ㅠㅠ http://boj.kr/b5740f5f59ce438aa9c890edbce7aba7

  • c++
  • 코딩-테스트
noahsway(김정호) 댓글 1 좋아요 0 조회수 515

3-D 틀린 부분을 모르겠습니다.

미해결

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

안녕하세요 큰돌님 틀린부분을 찾는것이 어려워 질문드립니다. 아래는 공유 코드입니다 http://boj.kr/251487f67822488681eee85d4012f297 불이 퍼지지 못하거나 없는경우를 처리해주지 않앗을땐 61%가 나왔는데 처리해주고나서 바로 틀렸다 나오네요.. 사람들이 올려놓은 테스트 케이스도 다 잘 나오는데 어떤부분이 잘못되서 안되는건지 아무리봐도 모르겠습니다 도와주십쇼 ㅠ

  • c++
  • 코딩-테스트
  • 3-d
jin 댓글 2 좋아요 0 조회수 375

인기 태그

인프런 TOP Writers

주간 인기글