묻고 답해요
148만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 116페이지 Ralo구조체 출력 결과 질문입니다.
안녕하세요, 강의를 잘 듣고 실습 중 질문이 있습니다. 알고리즘 교안 116페이지 Ralo구조체 예제 코드 진행 시 출력물에 대한 질문입니다. #include <bits/stdc++.h> using namespace std; struct Ralo { int a, b; double c, d, e; }; void print(Ralo ralo) { cout << ralo.a << " " << ralo.b << " " << ralo.c << " " << ralo.d << " " << ralo.e << '\n'; } int main() { Ralo ralo = {1, 1, 1, 1, 1}; print(ralo); vector<Ralo> ret; ret.push_back({1, 2, 3, 4, 5}); ret.push_back({1, 2, 3, 4, 6}); ret.push_back({}); ret.push_back({1, 3}); for (Ralo ralo : ret) { print(ralo); } return 0; }위 예시에서 a, b의 자료형은 int이고 c, d, e 의 타입은 double라고 먼저 선언을 하게 되는데, main함수에서 출력 시 왜 일관되게 정수형으로 출력되는지 이해가 안됩니다.(형변환이 일어나야하거나, 타입 불일치에 따른 에러가 떠야 하는게 맞는거 아닌가요 ?!) 제가 부족한 개념이 많이 있을 수도 있으니 너그럽게 읽어주시면 감사하겠습니다. ^^;;
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-K 문제 틀린 로직인가요?
안녕하세요 큰돌선생님 매번 좋은강의와 코드 감사합니다강의와 수업을 복습하며 문제를 다시 풀어보았는데요, 제 처음 풀이는 플러드 필을 사용하면 깔끔하게 풀 수 있을것 같아서 적용하여 풀어보았는데, 문제의 예제조차 통과하지 못하여 그냥 새롭게 큐를 계속 새로 만들어서 하는 방식으로 수정하여 통과하였습니다. 근데 첫번째 접근방법의 로직에서 틀린부분이 없다고 생각하는데 혹시 어디가 틀린것인지 봐주실 수 있으신가요? 새롭게 미세먼지가 퍼지는 부분을 큐에 계속 담는 방식을 사용하였습니다. 첫번째 틀린 코드http://boj.kr/cdaa0817a0054c8aaa05db4a94fd4cc1 수정후 정답 코드http://boj.kr/48dc28720f1840d78af14656ac682d39
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
변수 선언에 대한 결과 차이
#include <bits/stdc++.h>using namespace std;string s;int cnt[26];int main(){ cin >> s; for(char a : s){ cnt[a-'a']++; } for(int i = 0; i <= 26; i++){ cout << cnt[i] << " "; } return 0;} 이렇게 실행할 경우 baekjoon을 복붙하면 정상적인 결과가 나옵니다. 나중에 복습할 때 안 보고 풀어봤습니다만...변수 선언을 다음과 같이 하니까 결과 값이 달라집니다.int cnt[26];string s;사실상 순서만 바뀌었는데 왜 이렇게 결과가 바뀌는지 궁금합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
[최대 길이 연속부분수열] 틀린 이유
import java.util.*; class Main { public int solution(int n, int m, int[] arr) { int lt = 0, sum = 0, max = 0, count = 0; for(int rt = 0; rt < n; rt++) { if(arr[rt] == 1) { sum += arr[rt]; } else if (arr[rt] == 0) { if(count++ < m) { sum += 1; } else { if (sum >= max) { max = sum; sum = 0; lt ++; rt = lt; count = 0; } } } } return max; } public static void main(String[] args) { Main T = new Main(); Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt(); int[] arr = new int[n]; for(int i = 0; i < n; i++) { arr[i] = in.nextInt(); } System.out.print(T.solution(n, m, arr)); } }논리적으로 틀린건 없는거 같고, 예시코드도 틀린게 없는데 왜 오답이 나오는지 모르겠습니다 !!
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
테스트 케이스 하나가 오답인데 어떤 부분이 문제인지 모르겠습니다ㅠ
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; class Main { public static void main(String[] args) throws IOException { Main T = new Main(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); String str2 = br.readLine(); System.out.println(T.solution(str1, str2)); } public static String solution(String str1, String str2) { HashMap<Character, Integer> map1 = new HashMap<>(); HashMap<Character, Integer> map2 = new HashMap<>(); for (char x : str1.toCharArray()) { map1.put(x, map1.getOrDefault(x, 0) + 1); } for (char x : str2.toCharArray()) { map2.put(x, map2.getOrDefault(x, 0) + 1); } String answer = ""; for (char x : map1.keySet()) { if (map1.containsKey(x) == map2.containsKey(x)) { if (map1.get(x) == map2.get(x)) answer = "YES"; else answer = "NO"; } } return answer; } }테스트케이스 하나를 통과하지 못하는데 제가 생각하지 못한 부분이 있는지 궁금합니다!코드가 효율적이지 않을 수는 있으나 저렇게 해도 풀리지 않을까? 해서 작성해봤는데.. 뭐가 문제일까요테스트 케이스ABCDqtqtqEFqGHIJKLMNOPQRSTUVWetagdgXYabcdefghijklmnopqrstuwxyzaBcdewrqwtqFghIJklMnOpqrsTuegagaeVxyYAbCDEfGHijKLmNoPQRStUwWXz
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-K 시간초과 질문드립니다.
http://boj.kr/e1c3caaa80904ade933b274903722b31 시간초과 해결을 못하겠어서 어디 부분이 틀린건지 잘 모르겠습니다 ㅠㅠ
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
혹시 예외가 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. function solution(board, moves) { let answer = 0; //count let stack = []; //바구니 //크레인 for문 돌리기 for (const x of moves) { //크레인 위치, index에 맞게 설정 let idx = x - 1; //borad 체크 for (let i = 0; i < board.length; i++) { //인형 const v = board[i][idx]; //0 & null이면 그냥 넘기기 > 다음값을 넣어야 함 //null = 이미 바구니에 들어간 값 if (v !== 0 && v !== null) { //이미 바구니에 있는 경우 if (v === stack.at(-1)) { let pop = stack.pop(); answer += 2; } else stack.push(v); board[i].splice(idx, 1, null); break } } } return answer; } let a = [[0, 0, 0, 0, 0], [0, 0, 1, 0, 3], [0, 2, 5, 0, 1], [4, 2, 4, 4, 2], [3, 5, 1, 3, 1]]; let b = [1, 5, 3, 5, 1, 2, 1, 4]; console.log(solution(a, b));
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-L 질문합니다
안녕하세요, 선생님 강의 잘 듣고 있습니다!6-L 을 풀던 도중, 제 풀이 방법이 틀렸다고 나와 반례가 궁금합니다.시간 복잡도는 O(n* n/2) 이라 통과 한다고 생각합니다.A[i]에 10을 곱한것은 혹시 모를 부동 소수점 오류가 날지 몰라 처리 해두었습니다.https://www.acmicpc.net/source/70768639
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
강의에서 주신 코드가 입력값이 최악인 경우(ex)10 10) 시간초과 fail받을 코드 아닌가요??
선생님이 주신 테스트 케이스는 통과하지만 문제에 주어진 조건'첫 번째 줄에 자연수 N(3<=N<=10)과 M(2<=M<=N) 이 주어집니다.'에 최악의 케이스에서는 시간 초과로 통과하지 못한다고 생각합니다. 10,10 을 넣으면 3초를 아득히 넘어버리니까요.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
3중 for문으로 변경해서 정답
import java.util.Scanner; public class 멘토링 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int m = scan.nextInt(); int[][] intArrArr = new int[n][m]; for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ int temp = scan.nextInt(); intArrArr[temp-1][i] = j; } } System.out.println(solution(n,m,intArrArr)); } private static int solution(int n, int m, int[][] intArrArr) { int answer = 0; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ boolean flag = true; for(int k=0;k<m;k++){ if(intArrArr[i][k] >= intArrArr[j][k]){ flag = false; break; } } if(flag){ answer++; } } } return answer; } } input을 받을 때 학생이 행에 오도록 변경을 해서 등 수를 열로 변경해서 받으면 3중 for문으로도 가능합니다. 참고가 될까 싶어 올려봅니다 화이팅!!
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
splice로 써도 될까요?..?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. <script> function solution(arr){ let answer = arr; let [max, idx] = [-1, -1]; for (let i = 0; i < arr.length; i++){ max = Math.max(...arr) idx = arr.indexOf(max) arr.splice(idx, 1) // 배열 내 값 제거 arr.splice(idx, 0, i+1) // 제거한 자리에 max 순서 넣기 } return answer; } let arr=[87, 89, 92, 100, 76]; // 4 3 2 1 5 console.log(solution(arr)); </script> 섹션2의 5번 등수구하기문제입니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1620문제 번호가 바뀐 김에
안녕하세요 큰돌님, 현 1620 단어퍼즐https://www.acmicpc.net/problem/1165위 문제를 연습 삼아서 그냥 풀어 보려하는데혹시 실제 코테에 파일스트림 읽어서 문제 풀이를 진행해야 하는 케이스가 꽤 있는 편인가요?
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
완강 후 후속 강의, 공부법 질문..
파이썬 알고리즘 문제풀이 입문(코딩테스트 대비) 을 수강하는걸 추천하시나요,아니면 본 강의 하나만 복습하면서 BOJ문제를 풀어보는걸 추천하시나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-M 질문있어서 문의드렸습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 큰돌님 강의 잘 보고있습니다!2-M문제를 풀때 to_string의 시간복잡도가 O(log n) , find가 O(N)이라서 시간복잡도에 문제가 있을줄 알았는데 해결이 되었습니다. 혹시 이 문제의 시간복잡도는 어떻게 될까요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 처음 겪는 맞왜틀
안녕하세요 큰돌님.원래 각 영상별로 영상 시작시 영상 잠깐 멈추고스스로 문제를 풀어보고 도저히 안되면 영상 보는데요.영상 끝까지 보고 edge case가 뭔지 찾아서 풀었네요. 혹시 이런 코테 준비할때 edge case 대응 방법이 있을까요?단순히 경험치가 쌓이면 늘게 되는건가요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
파일 입출력에 대해 질문드립니다.
안녕하세요, 파일입력과 함께 파일출력에 대해 궁금한 부분이 있어 질문드려요.input.txt 파일에서 값을 불러와 output.txt파일로 출력값을 프린트하고 싶은데 이런 경우는 코드를 어떻게 작성하면 되는가요? sys를 쓰면 보다 간단하게 출력파일도 만들어낼 수 있을 거 같아서요.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-L 안녕 질문이 있습니다.
http://boj.kr/2451435928954fd4ade7f532de725ef2재귀를 돌면서 hp가 0이하가 되면 0을 반환하고 사람의 명수 만큼 재귀를 돌며 hp가 남아있으면 hppy(행복)을 반환해줘서 최대값을 반환하는 dp를 작성했는데 문제에 나와있는 테스트 케이스와 질문게시판에 있는 테케를 전부 돌려봤는데도 무엇이 잘못되었는지 모르겠습니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
다음과 같이 풀었는데 괜찮은가요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키<html> <head> <meta charset="UTF-8"> <title>출력결과</title> </head> <body> <script> function solution(arr){ let answer=0 ; let max =0; for(let i=0; i<arr.length; i++){ if(arr[i]>max){ max=arr[i] answer++ } } return answer; } let arr=[130, 135, 148, 140, 145, 150, 150, 153]; console.log(solution(arr)); </script> </body> </html>며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
문제 예시 2 질문
안녕하세요?문제 예시 2의 입력 예제6 0 60 60 90 60 60 60에서 왜 답이 5인지 잘 이해가 안 갑니다!문제에는 대기목록에 자기보다 위험도가 높은 환자가 없으면 자기가 진료를 받는 구조라고 하셨는데,그러면 위의 예시에서 0 번째 환자가 진료를 받을 때는당연히 2번째 아닌가 싶어서요제 코드로는 두 번째, 다섯 번째 케이스에서 오답이 나오는데요문제 설명에서 중복된 값이 있을 때 설명이 좀 이해가 잘 안 와 닿습니다.from collections import deque import sys # sys.stdin = open('input.txt','r') n, m = map(int, input().split()) p = list(map(int, input().split())) queue = deque(p) done = 0 target = queue[m] res = 0 while queue: maxx = max(queue) a = queue.popleft() if a < maxx: queue.append(a) else: done += 1 if a == target: res = done print(res) break
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 다음과 같이 작성하였는데 이상이 없을까요?<html> <head> <meta charset="UTF-8" /> <title>출력결과</title> </head> <body> <script> function solution(s) { let answer = ""; for (let i = 0; i < s.length - 1; i++) { if (s[i].length > s[i + 1].length) { answer = s[i]; } else { answer = s[i + 1]; } } return answer; } let str = ["teacher", "time", "student", "beautiful", "good"]; console.log(solution(str)); </script> </body> </html>