묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 출력 관련 질문입니다.
선생님이 보여주신 코드를 제 IDE에 옮기고 실행을 시켜봤습니다. 그리고 예시 입력을 넣어보면 3a*dabcdanestonestodfacebookDADA이렇게 출력이 되면서 마지막 NE가 나오지 않고 프로그램이 종료가 안 되고 계속 돌아가네요.그런데 답 제출을 해보면 맞았다고는 나옵니다.왜 이러는걸까요..?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 반례 알 수 있을까요...
http://boj.kr/fc8456e934554241bd6ece53be433384 나름 테스트 케이스도 통과를 하고 의심되는 케이스를 모두 돌려보았는데 에러가 납니다... 왜 일까요..
-
해결됨코딩테스트 [ ALL IN ONE ]
메모리 주소의 길이
연결리스트 (Linked List) - 1 강의 보면서 같이 디버깅해보는 중인데요강사님 화면에는 메모리 주소가 11자리로 나오는데저는 메모리 주소가 훨씬 길게 표시됩니다.이건 왜 그런 건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
dfs 탐색 순서
안녕하세요 큰돌님 dfs 공부하다가 탐색 순서가 헷갈려서 질문 드립니다. 제가 아래에 코드 링크를 첨부했는데요. 아래 그림에서 탐색 순서가 왜 저렇게 나오는지 모르겠습니다 ㅜㅜ http://boj.kr/f89c319ec14048a2a042c5a4c7027d60
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-F 질문이 있습니다 선생님!
안녕하세요 1-F 문제 풀 때 질문이 있어서 글 남깁니다.대문자, 소문자를 판단할 때 isAlpha 라는 함수가 있던데 이런걸 실제 코딩 테스트에선 사용하지 않는 것이 좋은건가요?이걸 활용해서 풀어보니 제 IDE에선 입출력에 맞게 잘 통과가 되는데 백준에선 오답이라고 나와서요!
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
왜 오답처리 되는지 모르겠습니다.
package infren.section1; import java.util.Scanner; public class section1_10 { static String solution(String s, String t) { String answer = ""; int[] tmp = new int[s.length()]; int p = 1; for (int i = 0; i < tmp.length; i++) { if (String.valueOf(s.charAt(i)).equals(t)) { tmp[i] = 0; p = 1; } else { tmp[i] = p++; } } p = 1000; for (int i = tmp.length - 1; i >= 0; i--) { if (String.valueOf(s.charAt(i)).equals(t)) { tmp[i] = 0; p = 1; } else { tmp[i] = Math.min(tmp[i], p++); } } for (int i = 0; i < tmp.length; i++) { answer += tmp[i] + " "; } return answer; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] tc = sc.nextLine().split(" "); String s = tc[0]; String t = tc[1]; String answer = solution(s, t); System.out.println(answer); } }출력값은 정답과 동일하게 나오는데 제출을 하면 오답처리로 되는데 어디가 문제인지 모르겠습니다
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이러한 방식도 가능할까여??
4중 for문이 이해가 안가 이런식으로 만들어봤는데 혹시 가능한가요? <html> <head> <meta charset="UTF-8"> <title>출력결과</title> </head> <body> <script> function solution(test){ let mathScore = {}; let possible = false; let answer=0; test.map((t)=>{ t.map((t2,index)=>{ mathScore[t2] = mathScore[t2]? [...mathScore[t2],index+1]:[index+1] }) }) for(let i =1; i<test.length+1; i++){ for(let j=1; j<test.length+1; j++){ if(i!==j){ for(let k=0; k<test.length; k++){ if(mathScore[i][k] < mathScore[j][k]){ possible= true; } } } } possible?answer++:null possible = false; } return answer; } let arr=[[3, 4, 1, 2], [4, 3, 2, 1], [3, 1, 4, 2]]; console.log(solution(arr)); </script> </body> </html>
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-G 런타임 에러
http://boj.kr/26f14293f96747a4b1f788ac70d98df2http://boj.kr/8f84f821f3014eef85b9d0fbc4cedcde 런타임 에러가 나오는데 이유를 모르겠습니다. 큰돌님과 다른 부분은 소수 판별 부분과 while문에 조건을 넣었다는 것 밖에는 없는 것 같은데 이상하네요..
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D_4179 불! 틀렸습니다..
테스트 예제는 맞게 나오는데 어디가 백준에서 11% 정도 되면 틀렸다고 뜸니다.. 어디가 문제일까요?ㅠㅠ 2시간째 보고 있는데 못찾겠습니다.. http://boj.kr/c6e3f5dbdd7649928958e43c0ed48238
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-G_ 2910 빈도 정렬 변수
안녕하세요 큰돌님! 저는 처음 입력을 받을때 그냥 a라는 int를 통해 입력을 받았고 결과도 잘 나왔습니다.전체 코드 링크:http://boj.kr/9b27f7b5e206448296677cba46683e86int main (){ cin >> n >> m; for(int i=0; i<n; i++){ cin >> a; mp[a]++; if(mp_first[a]==0) mp_first[a]=i+1; }그런데 큰돌님은 여기서 왜 굳이 입력 받으실때 a[1004] 배열로 받으셨는지 궁금합니다!int n, c, a[1004];int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> c; for(int i = 0; i < n; i++){ cin >> a[i];mp[a[i]]++; if(mp_first[a[i]] == 0) mp_first[a[i]] = i + 1; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8 펜윅트리
펜윅트리 설명이 너무 부족한 것 같습니다.인덱스랑 인덱스에 담긴값이랑 어떤 관계로 어떻게 찾아간다 이런부분이 있어야되는데 그냥 숫자만 얘기하시면서 숫자가 어떤걸 해당한다 이런내용도 없고 강의자료도 이미 아는사람이 이해할법하게 금방금방 넘어가구요. 이전강의랑 너무 다르게 진행하네요;
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-T 질문있습니다.
0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 2 3 3 0 0 0 0 0 0 4 4 3 1 0 0 0 0 0 0 4 4 4 4 0 0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 0 4 4 0 0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0예제 2번을 입력했을때 저는 위와 같은 결과가 나오도록 코드를 짰고 통과했습니다.다만 처음에 제가 문제를 대충 보고, "4개의 변이 모두 갖춰진 1x1 정사각형" 의 개수를 세는 것인줄 알고 위의 결과를 어떻게 수정해야하나 고민했었는데요. 좋은 방법이 딱히 떠오르지 않아서 질문드립니다.요약 : 기존 문제는 4개의 변이 아닌 4개의 꼭지점만 드래곤 커브에 관계가 있는 경우를 셌지만 이게 아니라 4개의 변을 갖춘 정사각형을 센다면 어떻게 해야할까 입니다.가장 아래 있는 위가 뚫린 사각형을 보면, 행열 인덱스를 구분선이 아니라 셀에 두더라도.. 구분이 안 될 것 같습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-K 시간초과 관련 질문있습니다!
안녕하세요 선생님!2가지 질문드릴게 있습니다!제가 만든 로직이 왜 시간초과인지 잘 모르겠고시간초과를 어떤식으로 해결해야할지 잘 모르겠습니다...http://boj.kr/e32a513c49c94b99b253e5daedafde8c#include <iostream> #include <queue> using namespace std; const int dy[4] = { -1,1,0,0 }; const int dx[4] = { 0,0,-1,1 }; int R, C, sy, sx, ey, ex, ret; int visited[1501][1501]; char adj[1501][1501]; queue<pair<int, int>> q; queue<pair<int, int>> temp; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> R >> C; sy = -1; for (int y = 0; y < R; y++) for (int x = 0; x < C; x++) { cin >> adj[y][x]; if (adj[y][x] == 'L') { if (sy == -1) { sy = y; sx = x; } else { ey = y; ex = x; } } } q.push({ sy,sx }); visited[sy][sx] = 1; while (true) { // 백조끼리 만나나 못만나나 확인 while (q.size()) { int y = q.front().first; int x = q.front().second; q.pop(); for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || ny >= R || nx < 0 || nx >= C) continue; if (ny == ey && nx == ex) { cout << ret; return 0; } if (visited[ny][nx]) continue; if (adj[ny][nx] == 'X') continue; visited[ny][nx] = visited[y][x]; q.push({ ny,nx }); } } // 빙판 녹이기 for (int y = 0; y < R; y++) for (int x = 0; x < C; x++) if (adj[y][x] == 'X') { for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || ny >= R || nx < 0 || nx >= C) continue; if (adj[ny][nx] == '.' || adj[ny][nx] == 'L') { if (visited[ny][nx] != 0) { q.push({ y,x }); visited[y][x] = visited[ny][nx]; } temp.push({ y,x }); break; } } } while (temp.size()) { adj[temp.front().first][temp.front().second] = '.'; temp.pop(); } ret++; } return 0; }
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
안녕하세요 11724번 질문드려요!
안녕하세요! 강의 수강 중 질문이 있어 질문 드립니다.현재 이런식으로 코드를 작성했고, 백준 스타일에 맞춰 제출을 했는데 오답처리가 되었습니다. 디버깅 시에도 1번예제6 5 1 2 2 5 5 1 3 4 4 6이걸 입력했을 때 2가 나오는 것이 아닌 dfs를 호출시 if절에서 전부 vistied[i] 부분이 false처리가 되어서 입력한 크기인 6이 answer로 계속 출력되고 있습니다.어느 부분이 문제여서 계속 찾고 있지만 발견하지 못하여 질문드립니다.package algorithmstudy.dfs; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class boj11724 { final static int MAX = 1000 + 10; static boolean[][] graph; static boolean[] visited; static int N, M; static int answer; static void dfs(int idx) { visited[idx] = true; for (int i = 1; i <= N; i++) { if (!visited[idx] && graph[idx][i]) { dfs(i); } } } 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()); // 1. graph에 연결 정보 채우기 graph = new boolean[MAX][MAX]; visited = new boolean[MAX]; for (int i = 0; i < M; i++) { st = new StringTokenizer(br.readLine()); int u = Integer.parseInt(st.nextToken()); int v = Integer.parseInt(st.nextToken()); graph[u][v] = true; graph[v][u] = true; } for (int i = 1; i <= N; i++) { if (!visited[i]) { answer++; dfs(i); } } bw.write(String.valueOf(answer)); br.close(); bw.close(); } }
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
(해결)정수론 #1978 자바코드로는 통과, 파이선으로는 통과가 안돼요...
+) 자바코드로는 통과했습니다. 파이썬코드로는 왜 통과를 못하는 걸까요?ㅠㅠimport java.util.Scanner; public class Main { public static void main(String[] args) { Scanner s = new Scanner(System.in); int N = s.nextInt(); int [] num = new int[N]; int cnt = 0; for(int i = 0; i<N; i++){ num[i] = s.nextInt(); if(num[i] == 1) continue; int j; for( j= 1; j<(int)Math.sqrt(num[i])+1; j++){ if((num[i] % j == 0) & (j != 1)) break; } if(j == (int)Math.sqrt(num[i])+1) cnt += 1; } System.out.println(cnt); } } 파이선은 백준에 제출했는데 틀렸다고 나옵니다... 제 알고리즘에 문제를 찾아주실 수 있나요?ㅠㅠimport math #약수 빠르게 구하기(n의 제곱근까지만 구하기) #1978 N = int(input()) num = list(map(int, input().split())) cnt = 0 for i in range(len(num)): if num[i] == 1: continue for j in range(1, int(math.sqrt(num[i])+1)): if ((num[i] % j == 0) & (j != 1)): break if (j*j != num[i]) & (j == int(math.sqrt(num[i]))): cnt += 1 print(cnt)
-
해결됨코딩테스트 [ ALL IN ONE ]
백트래킹
안녕하세요!백트래킹 강의들은 언제 업로드가 완료되나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-U 다른풀이 질문
안녕하세요 큰돌 선생님 강의 감사합니다..해당 문제를 처음에 보고 dp로 풀 수 있을것 같아서 접근했는데 원하는 답이 나오지 않아 선생님 강의를 보고 다익스트라로 해결하였습니다.근데 혹시 이 문제 dp로는 해결할 수 없을까요?http://boj.kr/b2b9e324cd1644e7a5edb8caf23830aa처음 dp로 해결하려던 코드입니다. 사실 예제 2번 부터 답이 틀려서 완전 틀린 코드이지만 어디가 틀렸는지 잘 모르겠습니다.dp의 매개변수로는 y좌표, x좌표, 그리고 d라는 이전에 왔던 방향을 뜻하는 매개변수를 넣었습니다. 현재의 값이 상하좌우 어디에서 온건지에 따라 최적의 값이 달라지기에 d를 추가하였습니다.dp배열의 초기값은 -1로 초기화했고, 또한 방문여부를 해결하기 위해서 visited배열을 만들어 해결하였습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 이왜틀..
http://boj.kr/7a58b316a27d4759a0374f44dba24267 질문을 너무 많이해서 죄송합니다... 강의를 보기전에 작성한 것인데.. 이게 왜 틀렸는지 모르겠습니다. 선생님 알고리즘과 유사한 것 같고 반례도 잡은 것 같은데.. 다음부터는 딴 짓 안하고 substr 쓰겠습니다..
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-F 질문있습니다.
http://boj.kr/1b398d90c42f47da868c6e70fe49c92a 안녕하세요.선생님이해가 되지 않는 부분이 있어 문의드립니다.제가 올린 코드로 "Baekjoon Online Judge" 입력을 넣으면 "Onrxwbba Bayvar W*(오류문자)qtr"이 반환됩니다. 그런데 제가 로직 대로 테스트를 해보니 u는 h로 변환이 되는 것이 맞는 것 같습니다. (28번쨰 줄 test 다음) 왜 안되는 것인지 알 수 있을까요? string은 char과 다른 무언가가 있나요..? (int로 해결해서 푸니 되는 걸 보니 overflow 관련 된거 같긴 한데 이해가 가지 않아 질문드립니다.)
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
1090완전탐색
해당 문제에 대해 몇번을 다시 읽고 있는데 왜 출력값이 예제와 같이 나오는지 이해가 안됩니다. '첫째 줄에 수 N개를 출력한다. k번째 수는 적어도 k개의 체커가 같은 칸에 모이도록 체커를 이동해야 하는 최소 횟수이다.'여기서 k는 무엇을 얘기하는 건가요?저는 4명의 친구들이 만날때 4명의 이동거리가 가장 짧은 좌표에서의 각 친구들의 이동거리를 순차적으로 나타내는 거 라고 생각하고 문제를 풀려고 했는데 그럼 주어진 출력예시와 맞지가 않습니다...