월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
호텔 연결 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 아래와 같이 작성하니까 예제 4번부터 틀렸다고 나옵니다.어디가 잘못 된건지 궁금합니다.import java.io.*; import java.util.*; class Node implements Comparable<Node>{ int v1; int v2; double c; Node(int v1, int v2, double c) { this.v1=v1; this.v2=v2; this.c=c; } @Override public int compareTo(Node o) { //double형은 이렇게 한다. return Double.compare(this.c, o.c); } } public class Main { public static int n,m; public static int[] unf; public static ArrayList<Node> graph = new ArrayList<>(); public static ArrayList<Integer> x = new ArrayList<>(); public static ArrayList<Integer> y = new ArrayList<>(); public static int find(int v) { if(v==unf[v]) return v; else return unf[v] = find(unf[v]); } public static void union(int a, int b) { int fa = find(a); int fb = find(b); if(fa!=fb) unf[fa] = fb; } public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); n=sc.nextInt(); m=sc.nextInt(); unf = new int[n]; for(int i=0; i<n; i++) unf[i] = i; for(int i=0; i<n; i++) { int a=sc.nextInt()-1; int b=sc.nextInt()-1; x.add(a); y.add(b); } for(int i=0; i<n; i++) { //점과 점 사이의 거리를 구하는 구문 for(int j=i+1; j<n; j++) { double dis = Math.sqrt((x.get(j)-x.get(i)) *(x.get(j)-x.get(i)) + (y.get(j)-y.get(i)) * (y.get(j)-y.get(i))); graph.add(new Node(i,j,dis)); } } for(int i=0; i<m; i++) { //이미 연결되어 있는 점들은 union해준다 int a=sc.nextInt(); int b=sc.nextInt(); union(a-1,b-1); } Collections.sort(graph); double answer=0; for(int i=0; i<graph.size(); i++) { //크루스칼 int fa = find(graph.get(i).v1); int fb = find(graph.get(i).v2); double cost = graph.get(i).c; if(fa!=fb) { //union(fa, fb); unf[fa] = fb; answer+=cost; } } System.out.format("%.2f", answer); //소수점 출력은 System.out.format으로 } }
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
최대 선호 음식 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 제출하니까 시간초과가 뜹니다. 어디가 잘 못 된건가요??import java.io.*; import java.util.*; public class Main { public static int[] pow, st; public static int n,d,k,answer=Integer.MIN_VALUE; public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); n=sc.nextInt(); d=sc.nextInt(); k=sc.nextInt(); pow = new int[d+1]; st = new int[n+1]; pow[1]=1; for(int i=2; i<=d; i++) pow[i] = pow[i-1]*2; for(int i=1; i<=n; i++) { int num, m; m=sc.nextInt(); for(int j=0; j<m; j++) { num=sc.nextInt(); st[i] += pow[num]; } } dfs(0,0,0); System.out.print(answer); } public static void dfs(int L, int s, int bit) { if(L==k) { int cnt=0; for(int i=1; i<=n; i++) if((bit&st[i])==st[i])cnt++; //st[i]가 bit의 부분집합이라면 cnt증가 answer = Math.max(answer, cnt); //최대값 갱신 } else { for(int i=s; i<d; i++) { //조합으로 탐색 dfs(L+1, i+1, bit+pow[i]); } } } }
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
숨겨진 합 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 답이 틀렸다고 나오는데, 어디가 잘 못 된건지 궁금합니다.import java.io.*; import java.util.*; public class Main { public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); String s=sc.next(); int res=0; int sum=0; for(char x : s.toCharArray()) { if(Character.isDigit(x)) { res = res*10 + (x-48); } else { sum+=res; res=0; } } System.out.print(sum); } }
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
제품이동 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 시간 초과라고 뜨는데, 더 빠른 방법이 있나요??import java.io.*; import java.util.*; class Node{ int v; int c; Node(int v, int c){ this.v=v; this.c=c; } } public class Main { public static ArrayList<Node>[] graph; public static int n,m,s, e; public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); n=sc.nextInt(); m=sc.nextInt(); graph = new ArrayList[n+1]; for(int i=1;i<=n; i++) graph[i] = new ArrayList<>(); for(int i=0; i<m; i++) { int a=sc.nextInt(); int b=sc.nextInt(); int c=sc.nextInt(); graph[a].add(new Node(b,c)); graph[b].add(new Node(a,c)); } s=sc.nextInt(); e=sc.nextInt(); int lt=1; int rt = 1000000000; int answer=0; while(lt<=rt) { int mid = (lt+rt)/2; if(count(mid)==1) { //e정점까지 갈 수있으면 answer=mid; lt = mid+1; //최대의 답을 찾아야하니까 } else rt = mid-1; } System.out.print(answer); } public static int count(int limit) { int[] ck = new int[n+1]; Queue<Node> q = new LinkedList<>(); q.add(new Node(s,0)); ck[s]=1; while(!q.isEmpty()) { Node now = q.poll(); int nowx = now.v; int nowc = now.c; for(Node ob : graph[nowx]) { if(ob.c>=limit && ck[ob.v]==0) { q.add(new Node(ob.v, ob.c)); ck[ob.v]=1; } } } return ck[e]; //마지막 점까지 갈수 있다면 1리턴, 아니면 0리턴 } }
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
송아지 찾기2 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 아래와 같이 작성했는데, 4번째 테스트 케이스에서 답이 출력 되지 않습니다. 어디가 잘 못된건지 궁금합니다.import java.io.*; import java.util.*; public class Main { public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); int s=sc.nextInt(); int e=sc.nextInt(); int k=sc.nextInt(); int[] ck = new int[10001]; for(int i=0; i<k; i++) { //웅덩이 체크 int a=sc.nextInt(); ck[a]=1; } Queue<Integer> q = new LinkedList<>(); q.add(s); int L=0; while(!q.isEmpty()) { int len = q.size(); for(int i=0; i<len; i++) { int now = q.poll(); if(now==e) { System.out.print(L); System.exit(0); } for(int nx : new int[] {now-1,now+1,now+5}) { if(nx>=1 && nx<10001 && ck[nx]==0) { //이동할 수 있는 범위이고, 아직 방문 안했고, 웅덩이가 아니라면 ck[nx]=1; q.add(nx); } } } L++; } } }
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
정사각형 그리기 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. dp를 작성하는 else 부분에서 배열의 범위가 벗어났다고 뜨는데, 어디가 잘 못 된건가요??? import java.io.*; import java.util.*; public class Main { public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int m=sc.nextInt(); int[][] map = new int[n][m]; int[][] dp = new int[n][m]; for(int i=0; i<n; i++) { String s=sc.next(); for(int j=1; j<=m;j++) { map[i][j]=s.charAt(j)-'0'; } } for(int i=0; i<n ; i++) { for(int j=0; j<m; j++) { if(map[i][j]==0) dp[i][j]=0; else { //에러 부분(배열 범위 벗어남) int a=map[i-1][j]; int b=map[i][j-1]; int c=map[i-1][j-1]; int k = Math.min(a, Math.min(b, c)); dp[i][j] = k; } } } } }
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
호텔연결
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.테스트케이스 4번, 5번에서 에러가 뜹니다.어디가 잘 못 된건지 궁금합니다.import java.io.*; import java.util.*; class Node implements Comparable<Node>{ int v1; int v2; double c; Node(int v1, int v2, double c) { this.v1=v1; this.v2=v2; this.c=c; } @Override public int compareTo(Node o) { //double형은 이렇게 한다. if(this.c<o.c) return -1; else return 1; } } public class Main { public static int n,m; public static int[] unf; public static ArrayList<Node> graph = new ArrayList<>(); public static ArrayList<Integer> x = new ArrayList<>(); public static ArrayList<Integer> y = new ArrayList<>(); public static int find(int v) { if(v==unf[v]) return v; else return unf[v] = find(unf[v]); } public static void union(int a, int b) { int fa = find(a); int fb = find(b); if(fa!=fb) unf[fa] = fb; } public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); n=sc.nextInt(); m=sc.nextInt(); unf = new int[n]; for(int i=0; i<n; i++) unf[i] = i; for(int i=0; i<n; i++) { int a=sc.nextInt()-1; int b=sc.nextInt()-1; x.add(a); y.add(b); } for(int i=0; i<n; i++) { //점과 점 사이의 거리를 구하는 구문 for(int j=i+1; j<n; j++) { double dis = Math.sqrt((x.get(j)-x.get(i)) *(x.get(j)-x.get(i)) + (y.get(j)-y.get(i)) * (y.get(j)-y.get(i))); graph.add(new Node(i,j,dis)); } } for(int i=0; i<m; i++) { //이미 연결되어 있는 점들은 union해준다 int a=sc.nextInt(); int b=sc.nextInt(); union(a-1,b-1); } Collections.sort(graph); double answer=0; for(int i=0; i<graph.size(); i++) { //크루스칼 int fa = find(graph.get(i).v1); int fb = find(graph.get(i).v2); double cost = graph.get(i).c; if(fa!=fb) { //union(fa, fb); unf[fa] = fb; answer+=cost; } } System.out.format("%.2f", answer); //소수점 출력은 System.out.format으로 } }
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
중복된 문자 제거 코드
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.c++코드를 자바로 변형했는데, 해시맵 오류가 뜹니다.잘못 변형한 곳이 어디인지 궁금합니다.import java.io.*; import java.util.*; public class Main { public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); String s=sc.next(); s=s.toUpperCase(); LinkedList<Character> res = new LinkedList<>(); HashMap<Character, Integer> map = new HashMap<>(); for(char x : s.toCharArray()) { map.put(x, map.getOrDefault(x, 0)+1); } for(char x : map.keySet()) { System.out.println(x+": "+map.get(x)); } HashMap<Character, Integer> ch = new HashMap<>(); for(char x: s.toCharArray()) { map.put(x, map.get(x)-1); if(ch.get(x)==1) continue; while(res.size()!=0 && res.peekLast()>x && map.get(res.peekLast())>0) { ch.put(res.peekLast(),ch.get(res.peekLast()-1)); //if(ch.get(res.peekLast())==0) ch.remove(res.peekLast()); res.pollLast(); } res.addLast(x); ch.put(x, ch.get(x)+1); } for(int i=0; i<res.size(); i++) System.out.print(res.get(i)); } }
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
전투게임
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.자바로 작성했는데, 시간 초과가 납니다. 어느 부분이 잘 못 작성한건지 궁금합니다. import java.io.*; import java.util.*; class Node implements Comparable<Node>{ int idx; char team; int power; Node(int idx, char team, int power){ this.idx = idx; this.team =team; this.power = power; } @Override public int compareTo(Node o) { return this.power - o.power; } } public class Main { public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int[] answer = new int[n+1]; ArrayList<Node> list = new ArrayList<>(); for(int i=1; i<=n; i++) { char a = sc.next().charAt(0); int b=sc.nextInt(); list.add(new Node(i,a,b)); } Collections.sort(list); //정렬 HashMap<Character, Integer> map = new HashMap<>(); int j=0,total=0; for(int i=1; i<n; i++) { for(;j<n; j++) { if(list.get(j).power<list.get(i).power) { total+=list.get(j).power; //쫓아오는 학생의 파워를 누적합 char x =list.get(j).team; //쫓아오는 학생의 팀을 표시 map.put(x, map.getOrDefault(x, 0)+list.get(j).power); //해싱해준다. } else break; } answer[list.get(i).idx] = total - map.getOrDefault(list.get(i).team, 0); //전체 누적합에서 자신의 팀이 있다면 그 점수는 빼준다. } for(int i=1; i<=n; i++) System.out.println(answer[i]); } }
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
숲속의 기사
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 예제는 통과해서 제출하니까 시간초과라고 뜨는데, 잘못 작성한건 가요??import java.io.*; import java.util.*; public class Main { public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); int[] dx = {0,0,1,-1}; int[] dy = {1,-1,0,0}; Queue<int[]> q = new LinkedList<>(); int n=sc.nextInt(); int m=sc.nextInt(); int[][] map = new int[m][n]; for(int i=0; i<m; i++) { for(int j=0; j<n; j++) { map[i][j]=sc.nextInt(); } } boolean[][] visit = new boolean[m][n]; int[][] dist = new int[m][n]; for(int i=0; i<m; i++) { for(int j=0; j<n; j++) { if(map[i][j]==2 || map[i][j]==3) { q.add(new int[] {i,j}); int L=0; visit = new boolean[m][n]; visit[i][j]=true; while(!q.isEmpty()) { int len = q.size(); L++; for(int k=0; k<len; k++) { int[] tmp = q.poll(); for(int z =0; z<4; z++) { int nx = tmp[0]+dx[z]; int ny = tmp[1]+dy[z]; if(nx>=0 && ny>=0&& nx<m && ny<n && map[nx][ny]!=1) { if(!visit[nx][ny]) { visit[nx][ny]=true; dist[nx][ny]+=L; q.add(new int[] {nx,ny}); } } } } } } } } int answer=Integer.MAX_VALUE; for(int i=0; i<m; i++) { for(int j=0; j<n; j++) { if(map[i][j]==4 && dist[i][j]>0) { answer = Math.min(answer, dist[i][j]); } } } System.out.print(answer); } }
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
멀티태스킹 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.자바로 작성해서 예제는 맞게 나오는데, 제출하니까 틀렸다고 나옵니다. 어디가 잘못 된걸까요??import java.io.*; import java.util.*; public class Main { public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int[] num = new int[n+1]; int[] st = new int[n+1]; for(int i=1; i<=n; i++)num[i]=sc.nextInt(); int k=sc.nextInt(); for(int i=1; i<=n; i++) st[i] = num[i]; Arrays.sort(st); int rest=num.length; //처리해야 할 작업 개수 for(int i=1; i<st.length; i++) { long time=((long) rest * (st[i] - st[i-1])); //몇번의 회전에 해당 작업이 끝나는가 if(time>k) { long idx= k%rest; //어디서 멈춰야하는지 구하는 변수 int cnt=0; for(int j=0; j<num.length; j++) { if(num[j]>=st[i]) { if(cnt==idx) { System.out.print(j); System.exit(0); } cnt++; } } } else { k-=time; rest--; } } System.out.print(-1); } }
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
숨겨진 합 자바 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.문자를 a로 치환하고 숫자만 뽑으려고 하는데 a의 개수가 달라서 에러가 뜹니다. 방법이 없을까요?? import java.io.*; import java.util.*; public class Main { public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); String s=sc.next(); String str = s.replaceAll("[^0-9]","a"); //a로 치환 int answer= 0; System.out.print(str); } }
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
영화관람 시간초과 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 자바로 작성하니까 시간초과가 나는데, 상관없는 건가요??import java.io.*; import java.util.*; public class Main { public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); int n=sc.nextInt(); int[] num = new int[n+1]; for(int i=1; i<=n; i++) { num[i] = sc.nextInt(); } Stack<Integer> st = new Stack<>(); int[] answer = new int[n+1]; for(int i=n; i>=1; i--) { //제일 뒤에서 부터 스택에 넣는다.(스택에 넣는 것은 [[인덱스 번호]]를 넣는다) while(!st.isEmpty() && num[i]>num[st.peek()]) { //num배열에서 인덱스 번호에 해당하는 것을 본다. 현재 배열의 값이 스택의 top부분보다 크면 pop한다. 다시말해 스택 안은 오름차순 정렬된다. answer[st.peek()] = i; //정답 배열에 인덱스 값 넣기, st.peek도 인덱스, i도 인덱스 번호 st.pop(); } st.push(i); //스택에 삽입 } for(int i=1; i<=n; i++) { //답 출력 System.out.print(answer[i]+" "); } } }
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
[2-5] 최대선호음식 시간초과..
import sys N, D, K = map(int, input().split()) bits = [2 ** i for i in range(16)] st = [0 for i in range(N)] res = 0 def and_calc(a, b): if a & b == b: return 1 return 0 def DFS(L, S, bit): global res if L == K: temp = 0 for i in range(len(st)): temp += and_calc(bit, st[i]) res = max(temp, res) return for i in range(S, D + 1): DFS(L + 1, i + 1, bit + bits[i]) return for i in range(N): # N input_value = list(map(int, sys.stdin.readline().split())) for bit in range(len(input_value)): if bit == 0: continue st[i] += bits[input_value[bit] - 1] DFS(0, 0, 0) print(res) 영상과 유사하게 구현을 했는데도 시간 초과가 나서요..어디가 문제인지 잘 모르겠습니다..파이썬이라서 그런건지.. 😢
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
[2-4 숲속의기사]
고민해보았지만, 제 코드가 왜 시간초과 나는지 이유를 알 수 없어서, 답답한 마음에 질문드립니다.[시간 복잡도]- 각 좌표 정보 얻기 위한 이중포문 10^6- visit 이차원 배열 2개 생성 2*10^3- bfs1 10^6(최대)- bfs2 10^6(최대)- 총 3*10^6 + 2*10^3- 위처럼 계산하면 시간 초과가 발생하지 않아야 하나, 발생하며- 위에 적은 것에서 bfs2는 우선순위큐를 사용하기에 더더욱 연산횟수가 줄어들것이라 생각하였습니다. 왜 시간 초과가 발생한 걸까요ㅠimport sys input = sys.stdin.readline from collections import deque import heapq d = [(0,1),(0,-1),(1,0),(-1,0)] # 영희 시작점 -> 산딸기 전체 탐색 def bfs1(): q = deque([(sx,sy)]) visit1[sx][sy]=1 while q: x,y = q.popleft() for dx,dy in d: nx = x + dx ny = y + dy if 0<=nx<N and 0<=ny<M and visit1[nx][ny]>visit1[x][y]+1 and arr[nx][ny]!=1: visit1[nx][ny]=visit1[x][y]+1 q.append((nx,ny)) # 각 산딸기 -> 기사 # 우선순위큐를 활용, 어느 산딸기 위치에서 시작하든 최단 거리로 도달할 수 있도록 def bfs2(): h = [] for x,y in raspberry: heapq.heappush(h,(visit1[x][y]-1, x,y)) visit2[x][y]=visit1[x][y]-1 while h: dist, x, y = heapq.heappop(h) if visit2[x][y]<dist: continue if (x,y)==(ex,ey): return dist for dx,dy in d: nx,ny = x + dx,y+dy if 0<=nx<N and 0<=ny<M and arr[nx][ny]!=1 and visit2[nx][ny]>dist+1: visit2[nx][ny] = dist+1 heapq.heappush(h,(dist+1,nx,ny)) # 입력 M,N = map(int, input().split()) arr = [list(map(int, input().split())) for _ in range(N)] sx,sy,ex,ey=0,0,0,0 raspberry = [] for i in range(N): for j in range(M): if arr[i][j]==2: sx,sy = i,j elif arr[i][j]==3: ex,ey = i,j elif arr[i][j]==4: raspberry.append((i,j)) visit1 = [[float('inf')]*M for _ in range(N)] visit2 = [[float('inf')] * M for _ in range(N)] bfs1() print(bfs2())
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
dp 풀이는 어려운가요?
이전 돌다리 건너기 문제는 dp풀이였는데, 이 문제는 뒤로가는 경우가 있어서 dp풀이가 어려운가요?
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
자바런타임에러
자바로 로직을 작성했는데 런타임에러가 뜹니다. 테케를 알 수 없어서 방황중인데 무엇이 문제인가요..? import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { int n = Integer.parseInt(br.readLine()); int result[] = new int[n]; ArrayList<User> list = new ArrayList<>(); for(int i=0; i<n; i++){ String[] s = br.readLine().split(" "); list.add(new User(s[0].charAt(0), Integer.parseInt(s[1]), i)); } Collections.sort(list); HashMap<Character, Integer> hm = new HashMap<>(); int i=1, j=0; int sum = 0; while (i<n && j<=i){ User user_i = list.get(i); User user_j = list.get(j); if(user_i.val <= user_j.val){ result[user_i.index] = sum-hm.getOrDefault(user_i.alpa, 0); i++; }else{ hm.put(user_j.alpa, hm.getOrDefault(user_j.alpa, 0) + user_j.val); sum+=user_j.val; j++; } } for(i=0; i<n; i++){ System.out.println(result[i]); } } static class User implements Comparable<User>{ char alpa; int val; int index; public User(char a, int b, int c){ alpa=a; val=b; index=c; } @Override public int compareTo(User o) { if(val-o.val > 0) { return 1;} return -1; } } }
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
문제 의문
선생님 BFS함수 코드 중에서 영희가 기사를 지나쳐가는 경우는 고려안했는데도 정답인 이유가 있나요?-> ['영희는 산딸기가 없이는 기사를 지나쳐 갈 수 없다.'] 2 - 0 - 3 - 4 이런 식의 행이 있으면 문제되지 않을까 싶어서요
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
모의고사 7회 2번 송아지 찾기 테스트케이스 3번, 4번 오류
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 문제를 풀던 중에 다른 분도 건의를 한 것 같은데 수정되지 않은 것 같아서 올립니다.테스트케이스에서 송아지의 위치와 웅덩이의 위치가 같은 점이 3번, 4번 테스트케이스에 있습니다.선생님의 코드에서는 bfs를 이용하여 현재좌표에서 3번(1, -1, 5)의 이동에 대한 위치값을 큐에 추가할때만 웅덩이와 방문했던 위치에 대해서 체크하고, 현재위치가 송아지의 위치와 같으면 바로 결과를 출력하지만, 문제 내용을 보면 웅덩이를 현수는 방문할 수 없으므로 웅덩이의 위치에 송아지가 위치한다면 방문할 수 없으므로 오류가 생긴다고 생각합니다. 문제를 수정하거나 테스트케이스를 수정해야할 것 같습니다.
- 미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
안녕하세요. 궁금한점이 있어서 질문드립니다.
안녕하세요. 궁금한점이 있어서 질문드립니다.BFS를 풀다가 생각난건데OOOXXXXOOOOXXXXXXXXXOOOOO이렇게 배열이 들어왔을때 1112233111433333333355555이런식으로 영역별로 숫자가 1씩 증가되는코드를 작성하고 싶은데 어떻게 해야할까요..?