월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
lt.rt가 잘 이해가 가지 않습니다.
tree.root.rt = new Node(3);tree객체에서 root를 참조하고, root 객체의 rt 변수의 값을 3으로 설정하는 것은 이해했습니다.그런데, tree.root.rt.lt는 rt변수에서 lt를 접근하는 건가요..??변수에서 변수를 참조하는 것이 잘 이해가 되지 않습니다.감사합니다.
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
채점 사이트에서 런타임 에러가 발생하여 질문드립니다.
강의보기전 짜본 코드입니다. 이클립스에서 실행할때는 답이 맞게 나오는데 채점 사이트에서는 에러가 출력되어 질문드립니다. package codingTest; import java.util.*; public class Main { public int Solution(int n, int[] ns) { int answer = 0; int reward = 0; for (int i = 0; i < n; i++) { if (ns[i] == 1) { reward++; answer += reward; } else if (ns[i] == 0) { reward = 0; answer += reward; } } return answer; } public static void main(String[] args) { // TODO Auto-generated method stub Main T = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int[] ns = new int[n]; for (int i = 0; i < n; i++) { ns[i] = kb.nextInt(); } System.out.println(T.Solution(n, ns)); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
런타임에러라고 뜨는데 어디서 잘못된 걸까요?
board의 값을 map으로 저장했습니다. map<몇번째 칸, 저장된 인형들>map의 key에 해당하는 value는 stack으로 저장했습니다.찾아보니 테스트 케이스 5번이 N번 째 줄의 인형을 쌓을 때 0 0 0 1 2 3 이런 식으로 쌓이는 경우뿐 아니라 0 1 0 2 3 같은 경우도 있다고 하네요. 하지만 이건 문제에 따로 명시되지 않은 부분이고 보통 인형 쌓기라고 하면 공백 없이 차곡차곡 쌓이는 걸로 생각해서 코드를 짰습니다.위의 테스트 케이스를 제외하고는 그럼 통과가 돼야 하는데 아예 런타임에러로 뜨는 이유를 못 찾고 있습니다..어떤 문제 때문인지 알려주시면 감사하겠습니다!package programmers.level0; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import java.util.Stack; import java.util.StringTokenizer; public class Main{ private static int solution(int size, int[][] board, int moveSize, int[] moves) { int answer = 0; // 삭제된 인형 수 Map<Integer, Stack<Integer>> map = new HashMap<>(); // 인형뽑기 기계(몇번째줄에 어떤 인형이 있는지 저장) // 입력받은 2차원 배열을 col별로 stack으로 저장해서 map에 저장 // 0값은 stack에 저장X for (int col = 1; col <= size; col++) { Stack<Integer> stack = new Stack<>(); for (int row = size; row > 0; row--) { if (board[row][col] == 0) break; stack.push(board[row][col]); } map.put(col, stack); } Stack<Integer> basket = new Stack<>(); for (int i = 0; i < moveSize; i++) { Stack<Integer> stack = map.get(moves[i]); if (!stack.isEmpty()) { if (!basket.isEmpty() && stack.peek() == basket.peek()) { basket.pop(); stack.pop(); answer += 2; } else { basket.push(stack.pop()); } } } return answer; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int size = Integer.parseInt(st.nextToken()); int[][] board = new int[size + 1][size + 1]; for (int i = 1; i <= size; i++) { st = new StringTokenizer(br.readLine()); for (int j = 1; j <= size; j++) { board[i][j] = Integer.parseInt(st.nextToken()); } } int moveSize = Integer.parseInt(br.readLine()); int[] moves = new int[moveSize]; st = new StringTokenizer(br.readLine()); for (int i = 0; i < moveSize; i++) { moves[i] = Integer.parseInt(st.nextToken()); } System.out.println(solution(size, board, moveSize, moves)); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
어느 부분에서 오답인지 잘 모르겠어요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 영상보기 전 혼자 풀었었던 답인데 어떤 부분에서 오답인지 모르겠습니다. 도와주세요 ㅜ import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int N = scan.nextInt(); int M = scan.nextInt(); int[] nums = new int[N]; int index1 = 0; int index2 = 1; int answer = 0; for (int i = 0; i < N; i++){ nums[i] = scan.nextInt(); } int sum = nums[index1] + nums[index2]; while(index2<N-1){ // index2가 2일 때 if(sum==M){ // answer++; // anser은 +1이 됨. 이 때 index2는 2 sum -= nums[index1++]; sum += nums[++index2]; // 인덱스 위치 옮겨줌. index2는 3이 됨. if(sum == M && index2 == N-1){ answer++; } continue; } if(sum<M){ sum += nums[++index2]; continue; } if(sum>M){ sum -= nums[index1++]; continue; } } System.out.println(answer); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
문제6번 컴파일에러 질문 드립니다!
안녕하세요!입력에 대한 출력값은 문제의 요구사항에 맞게 나오는데 계속 컴파일 에러가 뜹니다.import java.util.Scanner; public class Main { public String solution(String str){ if (str == null || str.isBlank()){ return str; } StringBuilder sb = new StringBuilder(); for (char c : str.toCharArray()) { if (sb.indexOf(String.valueOf(c)) == -1) { sb.append(c); } } System.out.println("sb :" + sb.toString()); return sb.toString(); } public static void main(String[] arg){ Main T = new Main(); Scanner kb = new Scanner(System.in); String str = kb.nextLine(); System.out.println(T.solution(str)); } } 어느 부분이 문제가 되는건지 알려주시면 정말 감사하겠습니다!
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
8-6 순열구하기 이러한 방식으로 풀어도 괜찮을까요?
이전 값을 DFS 매개변수로 넘겨서 이전값이 아니면 더 깊이 들어가는 방식으로 풀이를 혼자 했었습니다. 괜찮은 풀이 방법일까요?public class P6_순열 { static int n, m; static int[] arr; public static void DFS(int L, int prev, String answer) { if(L==m){ System.out.println(answer); }else{ for(int i=0; i<n; i++){ if(arr[i]!=prev) DFS(L+1, arr[i], answer+arr[i]+" "); } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); n=sc.nextInt(); m=sc.nextInt(); arr=new int[n]; for(int i=0; i<n; i++){ arr[i]=sc.nextInt(); } DFS(0,0,""); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
BFS 자료구조
BFS 문제를 PriorityQueue가 아닌 LinkedList로 풀던데 이유가 있을까요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
제 블로그에 코드 올려도 되나요?
강사님 강의 듣고제 블로그에 기록용으로 코드 올려도되나요?설명들은거 주석으로 기재한거 포함해서 제 이클립스에서 돌려본걸로 코드 가지고 있는데요 그걸 제 블로그에 올려도 괜찮을까요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
송아지 찾기 시간초과 질문
import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class FindCow { static int personPos; static int cowPos; static int[] idx = {5, 1, -1}; public static int solution(int n) { boolean[] visit = new boolean[10_001]; Queue<Integer> queue = new LinkedList<>(); visit[n] = true; queue.offer(n); int level = 0; while (!queue.isEmpty()) { int size = queue.size(); for (int i = 0; i < size; i++) { Integer curPos = queue.poll(); for (int k = 0; k < 3; k++) { int nextPos = curPos + idx[k]; if (nextPos == cowPos) { return level + 1; } if (nextPos < 10_001 && nextPos > 0 && !visit[nextPos]) { queue.offer(nextPos); visit[nextPos] = false; } } } level++; } return 1; } public static void main(String[] args) { Scanner in = new Scanner(System.in); personPos = in.nextInt(); cowPos = in.nextInt(); System.out.println(solution(personPos)); } }안녕하세요! 좋은 강의 항상 감사드립니다.강의 중, 송아지 찾기(BFS)에서 시간 초과가 떠서 확인해 보니, 강의에서 올려주신 코드와 딱히 다른 부분이 없어 보이는데 시간초과가 납니다. 왜 그럴까요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
오답 원인 문의
import java.util.Scanner; public class 단어뒤집기 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); StringBuilder sb = new StringBuilder(); int num = sc.nextInt(); String text1 = sc.next(); String text2 = sc.next(); String text3 = sc.next(); text1 = sb.append(text1).reverse().toString(); sb.setLength(0); text2 = sb.append(text2).reverse().toString(); sb.setLength(0); text3 = sb.append(text3).reverse().toString(); sb.setLength(0); System.out.println(text1); System.out.println(text2); System.out.println(text3); sc.close(); } }단어 뒤집기 강의 듣기전 제가 짠 소스인데, 출력결과는 문제와 동일하게 나왔는데, 제출 시 오답나와서 어떤 예외가 있는건지 몰라 문의드립니다. 혹시 불필요한 소스가 있는지도 궁금합니다.
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
문자 찾기 코드 평
import java.util.Scanner; public class 문자찾기 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String text = sc.next(); String ch = sc.next(); int cnt = 0; for(char rs : text.toCharArray()) { if(ch.toUpperCase().equals(String.valueOf(rs).toUpperCase())) { cnt++; } } System.out.println(cnt); sc.close(); } }문자찾기 위 코드로 강의 전 스스로 푼건데 불필요한 소스부분이 있는지 평가 요청드립니다.
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
미로탐색 코드 질문있습니다.
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.StringTokenizer; class Main { static int n = 7; static int[][] map; static int count = 0; static int[] dx = {-1, 0, 1, 0}; static int[] dy = {0, -1, 0, 1}; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); map = new int[n][n]; for (int x = 0; x < n; x++) { StringTokenizer st = new StringTokenizer(br.readLine()); for (int y = 0; y < n; y++) { map[x][y] = Integer.parseInt(st.nextToken()); } } dfs(0, 0); System.out.println(count); } public static void dfs(int x, int y) { if (x == n - 1 && y == n - 1) { count++; } else { for (int i = 0; i < 4; i++) { int d_x = dx[i] + x; int d_y = dy[i] + y; if (d_x >= 0 && d_x <= n - 1 && d_y >= 0 && d_y <= n - 1 && map[d_x][d_y] == 0) { map[d_x][d_y] = 1; dfs(d_x, d_y); map[d_x][d_y] = 0; } } } } }저와 같은 경우는 1부터 시작하지 않고 0부터 시작해서 n전까지를 구해서 진행했는데 인덱스 차이만 있는데 답은 두배씩 나오는지 모르겠습니다.정답이 8이라고 하면 16으로 나오더라구요. 인덱스를 하나씩 빼줘서 했을 뿐인데 어디가 문제인지 못찾겠네요ㅠ 아니면 놓친부분이 어디에 있는지 모르겠습니다ㅠ
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
연속부분수열
import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; public class Main { public int solution(int n, int m, int arr[]) { int answer = 0; int sum = 0; int lt = 0; int rt = 1; // 초기 합 설정 sum += arr[lt] + arr[rt]; while (rt < n - 1) { if (sum < m) { sum += arr[++rt]; } else if (sum == m) { answer++; sum -= arr[lt++]; } else { sum -= arr[lt++]; } } // while문에서 rt가 마지막 인덱스일 때 합은 검증을 못해서 검증 로직 추가 if (sum == m) answer++; return answer; } public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int arr[] = new int[n]; for (int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } System.out.println(T.solution(n, m, arr)); } }이 코드가 효율적인 코드인지 궁금해서 질문드립니다!!
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
10. 마구간 정하기 [ 비슷하지만 다른 해답] 이래도 맞게 푼 걸까요??
채점사이트에서 출력은 "첫 줄에 가장 가까운 두 말의 최대 거리를 출력하세요." 라고 되어 있었습니다.제 생각대로라면 말들이 여러마리니까 가장 가까운 말들의 거리가 말들마다 다를수도 있겠다는 생각이 들어. 최대거리를 구하기 위해 코드를 조금 다르게 쳤습니다. 채점사이트에서는 정답처리 되었는데 확신이 안들어서 이 방식대로 풀어도 되는지 피드백주세요. 또한, 제가 한 방식과 원래 풀이가 어떤 차이가 있는지 궁금합니다.첨부1. 원래 풀이, 내가 생각한 풀이2. 문제 전체 소스코드 *강의 풀이 방식 count()public int count(int[]arr, int distance){ int ep=0, cnt=1; for(int i=1; i<arr.length; i++){ //배치가능 if(arr[i]-arr[ep] >= distance){ cnt++; ep=i; } } return cnt; }*내가 푼 방식 count()public int[] count(int[]arr, int distance){ int [] res = new int[2]; int ep=0, cnt=1; int min = Integer.MAX_VALUE; for(int i=1; i<arr.length; i++){ //배치가능 if(arr[i]-arr[ep] >= distance){ cnt++; min = Math.min(min,arr[i]-arr[ep]); // 말들의 최소거리 ep=i; } } res[0] = cnt; // distance로 배치되는 말의 수 res[1] = min; // 말들의 최소 거리 return res; }*강의 풀이 방식 solution()내부 이진탐색 while문while (lt<=rt){ int mid = (lt+rt) / 2; //mid최소거리만큼 배치했을때 m보다 더 배치할 수 있으므로 거리를 늘린다. if(count(arr,mid) >= m){ // mid : 말들의 최소거리 lt = mid+1; answer = mid; } else rt = mid-1; }*내가 푼 solution()내부 이진탐색 while문while (lt<=rt){ int mid = (lt+rt) / 2; int res[] = count(arr,mid); //mid최소거리만큼 배치했을때 m보다 더 배치할 수 있으므로 거리를 늘린다. if(res[0] >= m){ // mid : 말들의 최소거리 lt = mid+1; answer = res[1]; // answer = mid 가 아닌 count메소드에서 계산한 말들의 최소거리를 넣어준다. //(말들이 여러마리일때 가장 가까운말의 최대거리를 구하라고 문제에 명시되어있어서) } else rt = mid-1; } 전체 소스코드import java.util.*; public class Main { public int[] count(int[]arr, int distance){ int [] res = new int[2]; int ep=0, cnt=1; int min = Integer.MAX_VALUE; for(int i=1; i<arr.length; i++){ //배치가능 if(arr[i]-arr[ep] >= distance){ cnt++; min = Math.min(min,arr[i]-arr[ep]); // 말들의 최소거리 ep=i; } } res[0] = cnt; // distance로 배치되는 말의 수 res[1] = min; // 말들의 최소 거리 return res; } public int solution(int n ,int m, int[] arr){ int answer = 0; Arrays.sort(arr); int lt = 1; int rt = arr[n-1]-arr[0]; //arr[arr.length-1]로 끝내도 큰 차이 없음 while (lt<=rt){ int mid = (lt+rt) / 2; int res[] = count(arr,mid); //mid최소거리만큼 배치했을때 m보다 더 배치할 수 있으므로 거리를 늘린다. if(res[0] >= m){ // mid : 말들의 최소거리 lt = mid+1; answer = res[1]; // answer = mid 가 아닌 count메소드에서 계산한 말들의 최소거리를 넣어준다. //(말들이 여러마리일때 가장 가까운말의 최대거리를 구하라고 문제에 명시되어있어서) } else rt = mid-1; } return answer; } public static void main(String[] args) { Main M = 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.print(M.solution(n,m,arr)); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
9-4.최대 수입 수케쥴 문제 질문있습니다!!
9-4.최대 수입 수케쥴 문제 질문있습니다!!import java.util.ArrayList; import java.util.Collections; import java.util.PriorityQueue; import java.util.Scanner; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); ArrayList<Point> arrayList = new ArrayList<>(); for (int i = 0; i < N; i++) { int x = sc.nextInt(); int y = sc.nextInt(); arrayList.add(new Point(x, y)); } Collections.sort(arrayList); PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(Collections.reverseOrder()); int tmp = arrayList.get(0).y; int answer = 0; for (int i = 0; i < arrayList.size(); i++) { if (arrayList.get(i).y < tmp) { answer += priorityQueue.poll(); tmp = arrayList.get(i).y; } priorityQueue.add(arrayList.get(i).x); if (i == arrayList.size() - 1) { answer += priorityQueue.poll(); } } System.out.println(answer); int j=0; } } class Point implements Comparable<Point> { int x; int y; Point(int x, int y) { this.x = x; this.y = y; } @Override public int compareTo(Point o) { return o.y-this.y; } } 답이 잘 나오는데 왜 오답인지 궁금합니다 ㅠㅠ
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
12번 암호문제 컴파일 에러가 나는 이유가 뭘까요?
package String; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class _01_12_암호_복습 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); String s = br.readLine().strip(); s = s.replace('#', '1').replace('*', '0'); StringBuilder sb = new StringBuilder(); for (int i = 0; i < s.length(); i += 7) { String word = s.substring(i, i + 7); sb.append((char) Integer.parseInt(word, 2)); } System.out.println(sb); br.close(); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
피자 배달거리 DFS 시간초과 문제
import java.util.ArrayList; import java.util.Scanner; class Main { static int N, M, dis, min, sum, answer; static ArrayList<Point> houses, pizzas; static Point[] spizzas; static int[] ch; public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); N = sc.nextInt(); M = sc.nextInt(); spizzas = new Point[M]; houses = new ArrayList<>(); pizzas = new ArrayList<>(); answer = Integer.MAX_VALUE; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { int tmp = sc.nextInt(); if (tmp == 1) { houses.add(new Point(i, j)); } if (tmp == 2) { pizzas.add(new Point(i, j)); } } } ch = new int[pizzas.size()]; T.DFS(0); System.out.println(answer); } void DFS(int L) { if (L == M) { sum = 0; for (Point house : houses) { min = Integer.MAX_VALUE; for (Point pizza : spizzas) { dis = Math.abs(house.x - pizza.x) + Math.abs(house.y - pizza.y); if (Math.min(min, dis) == dis) { min = dis; } } sum += min; } if (Math.min(sum, answer) == sum) { answer = sum; } } else { for (int i = 0; i < pizzas.size(); i++) { if (ch[i] == 0) { ch[i] = 1; spizzas[L] = pizzas.get(i); DFS(L + 1); ch[i] = 0; } } } } } class Point { int x; int y; public Point(int x, int y) { this.x = x; this.y = y; } }선생님의 풀이와는 다르게 체크드리스트를 만들어 DFS구현을 하였고 답이 잘 나오긴 하는데 채점사이트에서는 시간초과 문제가 나오네요 ㅜㅜ 혹시 문제가 어떤 것인지 알 수 있을까요??
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
x.length()-1 질문
안녕하세요! 단어 뒤집기에서 x.length()-1 코드중 x의 길이를 사용하는게 이해가 안됩니다. ㅠㅜ str.length()-1을 사용하는게 아니라 x.length()-1를 사용하는 이유가 뭔가요?for(String x : str) { char[] s = x.toCharArray(); int lt=0, rt=x.length()-1; }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
시간 초과
import java.util.*; class Main{ public int[] solution(int N, List<Integer> A, int M, List<Integer> B) { ArrayList<Integer> answer = new ArrayList<>(); Collections.sort(A); Collections.sort(B); for(int key : B) { if(A.contains(key)) { answer.add(key); } } return answer.stream() .mapToInt(Integer::intValue) .toArray(); } public static void main(String args[]) { Main T = new Main(); Scanner sc = new Scanner(System.in); int N = sc.nextInt(); List<Integer> A = new ArrayList<>(); for(int i = 0; i < N; i++) { A.add(sc.nextInt()); } int M = sc.nextInt(); List<Integer> B = new ArrayList<>(); for(int i = 0; i< M; i++) { B.add(sc.nextInt()); } for(int answer : T.solution(N, A, M, B)) { System.out.print(answer + " "); } } }안녕하세요. 이와 같이 코드를 짰는데, 케이스 4에서 시간초과가 나왔습니다. 이에 대해 저는 다음과 같은 가설을 세워봤습니다.Collections 클래스의 sort를 하는 시간이 Arrays 클래스의 sort 시간 보다 오래 걸린다.입력되는 배열을 ArrayList로 한 것이 배열보다 더 메모리를 많이 사용하므로 시간이 더 오래 걸린다.아직 자료구조에 대한 이해와 시간 복잡도에 대해서 기본이 부족한 것 같습니다..! 감사합니다.
- 해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
split 사용 강의 중 질문_return 값에 answer가 안담깁니다.
package basic; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class longWords_split { public String solution(String str){ String answer =" "; int m = Integer.MIN_VALUE; String[] s = str.split(" "); for(String x: s){ int len = x.length(); if(len > m) { m = len; answer = x; } } // System.out.println(answer); return answer; } public static void main(String[] arg) throws IOException { longWords_split T = new longWords_split(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String input = br.readLine(); T.solution(input); } }이 코드에서 System.out.println(answer); 로 확인하면 가장 긴 단어가 출력되는데, return answer 를 받았을때 값이 아무 것도 안나옵니다 (공백출력) 원인을 못찾고 헤매고 있습니다. ㅠㅜ 조언 부탁드립니다.