inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

투포인터 22988번 문제에서 continue와 break이 들어가는 이유

해결됨

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

N, X = map(int,input().split()) arr = sorted(list(map(int,input().split()))) s = 0 e = N-1 remain = 0 cnt = 0 while s <= e : # s와 e가 교차되면 멈춘다! if arr[e] == X: cnt += 1 e -= 1 continue if s == e : remain += 1 break # 짜투리를 하나 추가한다! if arr[e] + arr[s] >= X/2: cnt +=1 s += 1 e -= 1 else: s += 1 # 수가 커지겠죠! remain += 1 print(cnt + remain//3 ) 여기에서 while문 안에 첫 번째 if 다음에 continue가 들어가는 이유와 두 번째 if 문에서 break을 사용하는 이유를 모르겠습니다. 두 개 다 없어도 가능하다고 생각하는데 테스트 케이스의 경우 continue는 없어도 예제 출력을 출력했고, break은 없으면 예제출력과 결과가 다르네요!! continue와 break이 어떻게 쓰인 것인지 조금 자세히 설명해주실 수 있으실까요

  • python
  • 코딩-테스트
  • 알고리즘
녜힁 댓글 1 좋아요 1 조회수 355

완전탐색 1090번 시간초과

미해결

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

예제 문제는 잘 풀리는데 백준에 제출하니까 시간초과가 뜹니다 강의 자료랑 큰 차이는 없어 보이는데 어느 부분을 고쳐야 시간 안에 계산 가능할까요? #include <iostream> #include <cstdlib> using namespace std; int main(int argc, char **argv) { int n; int minX, minY, maxX, maxY; cin >> n; int arr[n][2]; for(int i=0; i<n; i++){ cin >> arr[i][0] >> arr[i][1]; } minX = arr[0][0]; maxX = arr[0][0]; minY = arr[0][1]; maxY = arr[0][1]; for(int i=1; i<n; i++){ if(arr[i][0]>maxX){ maxX = arr[i][0]; } else if(arr[i][0]<minX){ minX = arr[i][0]; } if(arr[i][1]>maxY){ maxY = arr[i][1]; } else if(arr[i][1]<minY){ minY = arr[i][1]; } } int arr_answer[n]; int arr_dis[n]; for(int i=minY; i<=maxY; i++){ for(int j=minX; j<= maxX; j++){ for(int l=0; l<n; l++){ int subY= 0, subX=0; subY = i-arr[l][1]; subX = j-arr[l][0]; arr_dis[l] = abs(subX) + abs(subY); } int sum = 0; for(int k=0; k<n; k++){ sum+=arr_dis[k]; if(i==minY && j ==minX){ arr_answer[k] =sum; } else if(sum < arr_answer[k]){ arr_answer[k] = sum; } } } } for(int i=0; i<n; i++){ cout << arr_answer[i] << " "; } return 0; }

  • python
  • 코딩-테스트
  • 알고리즘
yongyong213 댓글 2 좋아요 1 조회수 617

3-M아이디어가 있어도 코드로 구현하기가 어려운데

해결됨

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

구현문제를 풀어야 하나요? 맨날 답지 봐야 돼서 특히 재귀 함수 써야 할때는 ㅠㅠ dp도 그래서 너무 어려워요

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

바닥 장식 (백준 1388) 문제 질문입니당

해결됨

[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편

저는 맵2차원배열을 boolean으로 사용하고싶어 아래와 같이 코드를 작성해봤습니당... 예제입력1. 은 답이 잘나오는데 나머지는 왜 틀리게 나올까용... package DFS; import java.io.*; import java.util.StringTokenizer; import java.util.Vector; /* 바닥 장식 https://www.acmicpc.net/problem/1388 */ public class B1388 { final static int MAX =50+10; static boolean [][] map; static boolean [][] visited; static int M,N; static void dfs(int y, int x){ visited[y][x]=true; if (map[y][x]==true&& map[y][x+1]==true){ dfs(y, x + 1); } if(map[y][x]==false&&map[y+1][x]==false){ dfs(y+1,x ); } } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken()); M = Integer.parseInt(st.nextToken()); map = new boolean[MAX][MAX]; visited = new boolean[MAX][MAX]; //맵정보 반영 for (int i = 1; i <= N; i++) { String str = br.readLine(); for (int j = 1; j <= M; j++) { map[i][j] = (str.charAt(j - 1) == '-' ? true : false); } } //dfs int answer=0; for (int i = 1; i <= N; i++) { for (int j = 1; j <= M; j++) { if(map[i][j]&&visited[i][j]==false){ dfs(i,j); answer++; } } } bw.write(String.valueOf(answer)); bw.flush(); bw.close(); } }

  • java
  • 코딩-테스트
  • 알고리즘
  • dfs
락곤 댓글 1 좋아요 1 조회수 250

침투 (백준 13565) 문제중 질문입니당

해결됨

[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편

아래 코드에서 왜 DFS를 수행할때 MAP[1] 이 왜 고정인지 잘모르겠습니다... //맵정보 저장 for (int i = 1; i <= N; i++) { String str = br.readLine(); for (int j = 1; j <= M; j++) { map[i][j] = (str.charAt(j - 1) == '0' ? true : false); } } //dfs for (int j = 1; j <= M; j++) { if (map[1][j]) { // 왜 map[1][j] 일까요 dfs(1, j); // 또한 dfs도왜 1,j 일가요 } }

  • java
  • 코딩-테스트
  • 알고리즘
  • dfs
락곤 댓글 1 좋아요 1 조회수 308

최적화(정수론) 질문

해결됨

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

21분 22초에서 176에서 177까지의 수에서 2의 제곱수로 나누어지는 약수를 모두 찾아 더하는 문제인데요. 뜬금없게 느껴졌는데, 176은 16으로 나누어 떨어지고, 177은 1로 나누어 떨어지니 16+1 =17이 답이다 라고 하셨는데... 저는 이 전개가 전혀 이해가 되지 않습니다... 어떻게 16 + 1이 나오는지 알려주시면 감사하겠습니다....

  • python
  • 코딩-테스트
  • 알고리즘
김철세 댓글 1 좋아요 3 조회수 470

4. 모든 아나그램 찾기 질문

미해결

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

안녕하세요 다음 제 풀이가 테스트케이스 1,2번에서만 오류가 나는데 코드의 어느 부분이 잘못되었는지 모르겠어서 질문 드리고 싶습니다. import java.util.HashMap; import java.util.Scanner; public class Main { public static int solution(String S,String T){ int answer = 0; HashMap<Character,Integer> ThashMap = new HashMap<>(); for (char x: T.toCharArray()){ ThashMap.put(x, ThashMap.getOrDefault(x, 0)+1); } HashMap<Character,Integer> ShashMap = new HashMap<>(); // 1번째 윈도우 for (int i=0; i<T.length(); i++){ ShashMap.put(S.charAt(i), ShashMap.getOrDefault(S.charAt(i), 0)+1); } if (ThashMap.equals(ShashMap)) answer ++; // 나머지 윈도우 for (int i=T.length(); i<S.length()-1; i++){ ShashMap.put(S.charAt(i), ShashMap.getOrDefault(S.charAt(i), 0)+1); ShashMap.put(S.charAt(i-T.length()), ShashMap.get(S.charAt(i-T.length()))-1); if (ShashMap.get(S.charAt(i-T.length())) == 0) ShashMap.remove(S.charAt(i-T.length())); if (ThashMap.equals(ShashMap)) answer ++; } return answer; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str1 = sc.nextLine(); String str2 = sc.nextLine(); System.out.println(solution(str1,str2)); } }

  • java
  • 코딩-테스트
최수연 댓글 1 좋아요 0 조회수 259

노션 교재가 있어야 수강 가능한가요?

해결됨

코딩테스트 [ ALL IN ONE ]

안녕하세요! 강의를 수강하려고 결제했는데 노션 교재를 바로 받아 볼 수 있는게 아니더라구요 ㅠㅠ 구글폼 제출했는데.. 노션 교재가 있어야 원활한 수강이 가능한 것인지요?

  • python
  • 코딩-테스트
  • 알고리즘
유미김 댓글 1 좋아요 1 조회수 320

2-N 질문드립니다.

미해결

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님, http://boj.kr/a982837cbe674880af718ecd4566f9f5 이렇게 풀었는데, 예제는 다 맞게 나오는데 혹시 제가 놓친 테스트케이스가 있을까요? 아니면 다른 부분이 틀렸을까요? 감사합니다.

  • c++
  • 코딩-테스트
매트 댓글 1 좋아요 0 조회수 198

노션 공유 부탁드리겠습니다

해결됨

코딩테스트 [ ALL IN ONE ]

인프런 아이디: sonaky47 노션 이메일주소: sonaky47@gmail.com

  • python
  • 코딩-테스트
  • 알고리즘
sonaky47 댓글 1 좋아요 1 조회수 271

12891_DNA비밀번호

미해결

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

package baekjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class p12891_DNA비밀번호 { static int[] myArr ; static int[] checkArr ; static int checkSecret ; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System. in )); StringTokenizer st = new StringTokenizer(br.readLine()); int s = Integer. parseInt (st.nextToken()); int p = Integer. parseInt (st.nextToken()); int result = 0; checkArr = new int[4]; // 비밀번호 체크 배열 myArr = new int[4]; // 현재 상태 배열 char[] a = new char[s]; checkSecret = 0; // 현재 p개 중 몇개가 비밀번호 요건에 만족하는지 a = br.readLine().toCharArray(); st = new StringTokenizer(br.readLine()); for (int i = 0; i < 4; i++) { checkArr [i] = Integer. parseInt (st.nextToken()); if ( checkArr [i] == 0) { checkSecret ++; // i번째 값은 이미 완성됨. } } for (int i = 0; i < p; i++) { // 부분 문자열 처음 받을 때 세팅 Add (a[i]); // 현재 상태 배열에 담음 } if ( checkSecret == 4) { result++; } // 슬라이딩 윈도우 for (int i = p; i < s; i++) { int j = i - p; // j = 맨 왼쪽, i = 맨 오른쪽 Add (a[i]); // 오른쪽에 있는 값 추가 Remove (a[j]); if ( checkSecret == 4) { result++; } } System. out .println(result); br.close(); } private static void Remove(char c) { switch (c) { case 'A': if ( myArr [0] == checkArr [0]) // 같으면 이번에 빠짐으로써 충족이 안 되는 것이니까 checkSecret 하나 줄임 checkSecret --; myArr [0]--; break; case 'C': if ( myArr [1] == checkArr [1]) checkSecret --; myArr [1]--; break; case 'G': if ( myArr [2] == checkArr [2]) checkSecret --; myArr [2]--; break; case 'T': if ( myArr [3] == checkArr [3]) checkSecret --; myArr [3]--; break; } } private static void Add(char c) { switch (c) { case 'A': myArr [0]++; if ( myArr [0] == checkArr [0]) checkSecret ++; // 'A'가 더 많이 들어온다고 해서 checkSecret값을 올리면 되는 게 아니므로 딱 같을 때에만 증가시킴 break; case 'C': myArr [1]++; if ( myArr [1] == checkArr [1]) checkSecret ++; break; case 'G': myArr [2]++; if ( myArr [2] == checkArr [2]) checkSecret ++; break; case 'T': myArr [3]++; if ( myArr [3] == checkArr [3]) checkSecret ++; break; } } } 현재 백준에서 문제가 통과되지 않고 있는데 혹시 잘못된 부분이라도 있을까요?ㅠ

  • java
  • 코딩-테스트
  • 알고리즘
문수 댓글 3 좋아요 0 조회수 660

미로 탐색 코드 리뷰 부탁드립니다!

미해결

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

반복문을 안 쓰고 짜 봤는데 답은 그대로 나오지만 이렇게 짜도 되는 건지 궁금합니다. 1로 바꿔줬다가 0으로 바꿔주는 시점을 이렇게 해도 괜찮을까요?? 풀이에서는 DFS 돌아올 때마다 해주시는 것 같아서 질문 드립니다! const solution = (miro) => { let ans = 0; const DFS = (N, M) => { if (N < 0 || M < 0 || N > 6 || M > 6) return; if (M === 6 && N === 6) { ans++; } else { if (miro[N][M] === 0) { miro[N][M] = 1; DFS(N - 1, M); DFS(N, M - 1); DFS(N + 1, M); DFS(N, M + 1); miro[N][M] = 0; } } }; DFS(0, 0); return ans; }; console.log( solution([ [0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 0], [0, 0, 0, 1, 0, 0, 0], [1, 1, 0, 1, 0, 1, 1], [1, 1, 0, 0, 0, 0, 1], [1, 1, 0, 1, 1, 0, 0], [1, 0, 0, 0, 0, 0, 0], ]) );

  • javascript
  • 코딩-테스트
sarah.mun16 댓글 1 좋아요 0 조회수 351

3-I qSize를 쓰는 것과 안 쓰는것의 차이

해결됨

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

가 뭔지 잘 모르겠습니다 ㅠㅠ 어떻게 달라지는지 알려주실 수 있나요

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

3-H next > MAX라고 하면 틀리는 이유

미해결

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

http://boj.kr/21fd549ee17c48b9be877802112b7a91 if문에서 next > MAX라고 하면 틀리네요 next >= MAX라고 하면 맞구요 왜 그런걸까요 그리고 v.push_back(i) 할 때 1, 2, 3 이렇게 넣으면 1 , 2, 3 순서대로 들어가는게 아니라 3, 2, 1 이렇게 되네요 처음 알았습니다

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

[코드리뷰 요청]2중 포문 안썼는데도 시간초과 발생하는 이유가 뭘까요?

미해결

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이중 포문 사용하면 O(N제곱) 나올 것 같아서 조건문에서 ++해주는 방법으로 사용했는데도 시간초과가 나오는 이유가 뭘까요? import java.util.Scanner; // 이중 포문을 피해서 로직을 만들었는데도 시간초과 발생 public class Main { public int solution(int n, int m, int[] arr) { int answer = 0; int start = 0; int sum = arr[start]; for (int i = start+1; i < n; i++) { sum += arr[i]; if (sum == m) { answer++; start ++; i = start; sum = arr[start]; } if (i == n-1) { start ++; // 1 i = start; //2 sum = arr[start]; } } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int m = kb.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = kb.nextInt(); } System.out.println(T.solution(n,m,arr)); } }

  • java
  • 코딩-테스트
세진:) 댓글 1 좋아요 0 조회수 355

40분쯤 gcd 관련 이해가 안됩니다.

해결됨

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

gcd(12,8) -> gcd(8,12-8)이면 gcd(a,b) -> gcd(b,a-b) 가 맞는게아닌가요?

  • python
  • 코딩-테스트
  • 알고리즘
ㅇㅇㅇ 댓글 2 좋아요 2 조회수 466

3-D q에 fire 거리 부분

미해결

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

fire_check[ny][nx]!=INF면 continue잖아요 ny nx에 값(!INF인값)이 이미 존재하는데 불이 여러개라 fire_check[ny][nx]>fire_check[y][x]+1 인 경우의수는 생길 수 있는데 bfs라 이럴 경우가 안생겨서 굳이 비교 할 필요 없게되나요? 질문이 좀 그런가요 ㅠㅠ

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

강의자료 질문입니다.

미해결

[EduAtoZ] Python CosPro 1급 예상문제 풀이(40문제)

안녕하세요. 수업 자료 다운로드 받았는데, 1회분 밖에 없는 것 같아서요. 2~4회 자료는 어디서 봐야하나요?

  • python
  • 코딩-테스트
섬수 댓글 2 좋아요 0 조회수 423

인기 태그

인프런 TOP Writers

주간 인기글