묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
완전탐색 숫자야구 뭐가 틀린지 모르겠어요..
n = int(input()) hint = [list(map(int,input().split())) for _ in range(n)] answer = 0 #100 ~ 999 for a in range(1,10): # 100의 자리 for b in range(10): # 10의 자리 for c in range(10): # 1의 자리 if (a == b or b == c or c == a): continue cnt = 0 for arr in hint: number = list(map(int, str(arr[0]))) strike = arr[1] ball = arr[2] ball_count = 0 strike_count = 0 #스트라이크카운트 자리수,숫자 둘다 if number[0] == a: strike_count += 1 if number[1] == b: strike_count += 1 if number[2] == c: strike_count += 1 #볼카운트 자리수는 안맞고 숫자만 if a in number and number[0] != a: ball_count += 1 if b in number and number[1] != b: ball_count += 1 if c in number and number[2] != c: ball_count += 1 if ball == ball_count and strike == strike_count: cnt += 1 if cnt == n: answer += 1 print(answer)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-J: 배열 인덱스 질문
https://www.acmicpc.net/source/share/2e4e57d962ef41a9bb4bc8f670ac158c정답 소스 중if(a[i][j] == 0){ while(a[i][j + 1] == -1){ a[i][j + 1] = cnt++; j++; } } for문에서 j < m이니, a[i][j + 1]은 배열 인덱스를 초과할 수 있는 것 아닌가요? 저는 그렇게 생각하여while(j + 1 < m && a[i][j + 1] == -1)이 맞다고 생각하였는데, 제 생각에서 뭐가 틀린 건지 모르겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1차원 배열 회전 관련 질문
안녕하세요알고리즘 교안 > 1.12 코딩테스트 필수로직 > 1차원 배열회전 관련 공부를 하다 질문사항이 생겨 문의 드립니다. // 반시계방향 문제 //{1, 2, 3, 4, 5, 6} -> {1, 3, 4, 5, 2, 6} rotate(v.begin() + 1, v.begin() + 2, v.begin() + 5);// 시계방향 문제 // {1, 2, 3, 4, 5, 6, 7} -> {5, 6, 7, 1, 2, 3, 4} rotate(v.rbegin(), v.rbegin() + 2, v.rend()) // 6 7 1 2 3 4 5저는 반시계방향 문제에서는 middle값이 v.begin()이 1을 가리키고 두칸 이동해서 3을 가리킨다고 이해했고시계방향에서도 동일하게 v.rbegin()이 7을 가리키고 두칸 이동해서 5를 가리켜서 결과가 5, 6, 7, 1, 2, 3, 4 가 나올 것으로 기대했는데, 6, 7, 1, 2, 3, 4, 5 가 나오더라구요 .. 반시계방향 문제는 제가 이해한 방식으로 여러 다른 문제 풀어도 결과가 동일하게 나오는데 시계방향 문제에서는 제가 이해한 방식으로는 원하는 결과값이 나오지를 않는데, 어느 부분이 잘못된건지 알 수 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-V 질문 있습니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 1분 53초부터 2분 45초까지의 설명에서 각각의 배열에 10을 저장하셨는데, 이게 어떤 의미의 10인지 몰라서 제가 이해한 것이 맞는지 확인하기 위해서 질문드립니다! 제 생각에 이 내용 뒷부분에 10을 만드는 경우의 수의 횟수를 가지고 20을 만드는 경우의 수를 구하는 설명이 이어진 것을 보면 1:53~2:45에서는 10을 만드는 경우의 수로 만든 10을 A 배열에 저장하고, 따로 B 배열도 해당 경우의 수를 구해 B 배열에 저장했다고 생각이 듭니다. 그럼 이 배열을 이용해서 k = 20이 되는 경우의 수를 찾는 것인데 왜 A*B를 체크하시는지 잘 모르겠습니다. 둘을 더해서 20이 되는 경우 ret++을 하는 것이 맞지 않나요?
-
미해결김영한의 실전 자바 - 중급 2편
제가 작성한 코드 출력 결과에 의문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]< 사전 설명 >Rectangle 객체에서 hashCode()와 equals() 둘중 equals()만 오버라이드 하였습니다. 이후 public class RectangleTest { public static void main(String[] args) { Set<Rectangle> rectangleSet = new HashSet<>(); for (int i = 0; i < 13; i++) { rectangleSet.add(new Rectangle(20, 20)); } System.out.println(rectangleSet.size()); for (Rectangle rectangle : rectangleSet) { System.out.println("rectangle = " + rectangle); } } }위와 같은 코드를 작성했을때System.out.println(rectangleSet.size()); 출력 결과가 13이 나오고for문의 출력 결과도 같은 결과가 13번 나옵니다. < 질문 >hashCode()를 오버라이드 하지 않음으로써 해시인덱스가 랜덤으로 배정되는 것으로 알고있습니다.그래서 논리적으로 같은 객체가 들어오더라도 다른 해시인덱스에 할당 되는것이 문제가 됩니다. 하지만 제가 작성한 코드와 같이 많은 for문을 돌게 될면 새로 만들어진 Rectangle 객체가 언젠가 최소 한번쯤은 해시인덱스에서 중복된 객체를 만나게되고, 중복되는 해시 인덱스의 버킷에서 equals() 메서드가 실행되어 저장이 취소될것이라고 예상했습니다.그래서 rectangleSet.size()는 13 미만이 될거라 생각했지만 아니었습니다. 오버라이드된 equals() 메서드가 실행되지 않는 이유가 무엇일까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-a, dp, 다익스트라 알고리즘관련 질문입니다!!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 뭔가 이 문제에서 inf로 처음에 거리를 초기화해놓는것이 다익스트라 알고리즘과 비슷한것같은데,이 문제처럼 다익스트라 알고리즘도 dp의 하나의 형태라고 볼 수 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-a 관련 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 두 정점 사이에 간선이 있을 수도, 없을 수도 있는데,이를 생각하지 않고, 경로에서, 해당 정점을 포함한다 / 포함하지 않는다 라고 타나내면 안되는 것이 아닌가요?? 만약, 정점들의 조합을 만들었는데, 예) a(0),b(1),c(1),d(0),e(0)어떻게 간선을 연결하려 해봐도, 해당 정점처럼 간선을 구성할 수 없을 수도 있지 않나요? 아니면 혹시 어짜피 결국엔, 문제가 <모든 정점들을 지나는 경로>를 찾으라고 했으니까, 짜피 문제의 일부분 (서브그래프)에선 해당 경로가 없어도, 글로벌로는 무조건 모든 정점들이 포함딜 것이기 때문에, 순서를 상관쓰지 않고, 조합을 통해 해결할 수 있는 것인가요?? dp 처음 배우는데 어렵네용.. 감사합니다!!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
탑다운dp와 버텀up dp에 대한 설명을 좀 더 알 수 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 자두나무 문제에 대한 설명에서.이 문제가 탑다운 dp란 설명에서 ' 이 재귀적인 DP는 필요한 부분의 배열만을 만든다는 것이 특징입니다. '[출처] [알고리즘 강의] 7주차. DP, 동적계획법, 다이나믹프로그래밍|작성자 큰돌 라는 문장이 이해가 가지 않습니다.필요한 부분의 배열만을 만든다는게 정확히 무슨말인가요? 또한, 탑다운 dp와 버텀업dp 위에서 아래로 간다 /아래에서 위로간다 라는 말이 완벽하게 이해가 가지 않습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D질문 있습니다.
두가지 질문이 있습니다.저는 J랑 F가 제자리에 있을 때는 카운트 안 하고 이동할 때마다 증가해서 J가 아예 빠져나오는 것을 카운트해야된다고 생각하였는데 제가 잘못 생각하는걸까요..?#####JF# # . . # # . . # ####--------------------------# J F # # 1 . # # 2 . # 이렇게 탈출했다고 생각하였습니다. 32. 불이 몇개 이상이다라는 조건이 없는데 한개만 가능하다라는 조건이 없기때문에 여러개가 가능하다고 생각을 해줘야되나요?? 이 문제는 생각보다 친절하지 않은 문제같은데 제 생각이 맞을까요ㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
자두 문제 설명관련 질문드립니다!
2^30이 언급될 때, 왜 2^30이 언급되는지 잘 이해가 가지 않습니다. 선생님께서 2^30에 대해 언급하실 때자두가 30초 동안 떨어지며 W=30인 것을 가정하고, 이때, 자두의 이동에 대한 모든 경우의 수를 탐색하려면 2^30이 걸린다는 것을 말씀하시는 건가요? (현재 위치 유지하거나/다른 나무로 이동)
-
미해결김영한의 실전 자바 - 중급 2편
comparable, comparator
얼핏 봤을때에는 comparable 과 comparator 차이가 크게 없어 보이는데, 만약 String ID 알파벳 순이라 아니라String Id 의 length 순으로 정렬해서 배열을 만들고 싶다고 했을때에는 comparable 은 기본적인 자연적인 배열 순서로 정의를 해주기 때문에 comparator 를 쓰는게 올바른 것인가요 ?
-
미해결김영한의 실전 자바 - 중급 2편
comparable, comparator
강의를 보면 ID 를 통한 Array 배열을 정렬할때IdComparator 를 만드셨는데, 사실 comparable 에서도 충분히 정의할 수 있는 것 아닌가요 ?단순히 Comparator 를 통해서도 할 수 있다라는 것을 보여주기 위함인가요 ?또한 언제 comparable 을 쓰는 게 낫고 언제 comparator 를 쓰는게 나은가요 ?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
14002번 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.https://www.acmicpc.net/source/8287773914002번 문제를 nlogn 시간에 풀기 위해서 큰돌쌤께서 알려주신 lower_bound로 풀어봤는데 틀렸다고 나옵니다. 이 방법은 trace는 할 순 없지만 문제에선 수열이 여러가지인 경우 아무거나 출력해도 상관없다고 해서 이 방법으로 하면 정상적으로 되야하는거 아닌가요...? 제가 이해를 잘 못한건지 어디 부분이 틀렸는지 잘 모르겠습니다
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
안녕하세요. 파트 소개 글을 보다가 브루트 포스와 구현 문제에 대해
참고로, 단순 구현 문제와 브루트 포스 관련 문제만 잘 풀어도 어렵지 않은 코딩테스트는 합격을 노려볼만합니다. 해당 내용이 언급 되어 있던데, 이부분은제 코테 전략은 아래와 같습니다.백준 브루트포스 알고리즘별 문제모음https://www.acmicpc.net/problemset?sort=ac_desc&algo=125 백준 시물레이션(구현) 알고리즘별 문제모음https://www.acmicpc.net/problemset?sort=ac_desc&algo=141 알고리즘별 문제 모음으로브루트 포스 : 100문제시물레이션 : 100문제각각 100문제 정도 풀어보고해당 강의에 있는 문제들을 완전 이해와 학습 복습을 하는것인데 이정도면 스타트업 코딩테스트 정도 노려볼만한가요?
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
16번 문제에서 직접 답을 대입하면 정답이 나오는데 채점에서 wrong answer가 나옵니다.
#include <iostream> #include <string> using namespace std; string solution() { int cAlph[26] = { 0 }; int sAlph[26] = { 0 }; string str1, str2; cin >> str1 >> str2; if (str1.length() != str2.length()) return "NO"; int len = str1.length(); for (int i = 0; i < len; i++) { if (isupper(str1[i])) cAlph[str1[i] - 'A']++; else sAlph[str1[i] - 'a']++; if (isupper(str2[i])) cAlph[str2[i] - 'A']--; else sAlph[str2[i] - 'a']--; } for (int i = 0; i < 26; i++) { if (cAlph[i] != 0 || sAlph[i] != 0) return "NO"; } return "Yes"; } int main() { cout << solution() << endl; return 0; } Case #01 : SuccessCase #02 : SuccessCase #03 : Wrong_answerCase #04 : SuccessCase #05 : Wrong_answer점수 결과 : 60 도대체 모르겠습니다.. 직접 다 예시 대입 해봤을 때는 정답으로 되는데 채점을 돌리면 왜 틀렸다고 나오는지 모르겠습니다ㅜㅜ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
0주차 [필수강의] split 함수 수업자료 다운로드 관련 문의
0주차 [필수강의] split 함수 질문 있습니다 해당 강의를 모바일에서보면수업자료아이콘이 나타나있습니다 C++알고리즘 교안 처럼 파일만 있는게 아니라 동영상과 함께있어 다운로드 하지못하는건지 모바일에서도 pc에서도 수업자료를 받을 수 없어서 질문드립니다 해당 수업자료 아이콘은 따로 파일이 첨부되어있다는 표시일까요?맞다면 어떻게 다운로드 할 수있는지 문의드립니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-W 2342 질문있습니다.
http://boj.kr/d480df7fada948b4a9ace782c2532e66 선생님과 비슷한 코드를 작성한거 같은데 답이 안 나오는 이유를 잘모르겠습니다... 그리고 이 문제의 경우 최솟값을 찾는 경우이므로 dp배열을 답이 될 수 없는 가장 큰 수로 초기화를 하지 않는 이유가 궁금합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
이전 강의와 수업 자료가 동일한 것 같습니다.
두 강의가 다 알고리즘_문제해설 pdf 파일이라 (각 8/21, 8/16일 자) 알고리즘 교안pdf 파일이 제대로 업로드가 되지 않은 것 같습니다. 확인 부탁드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-I, 결과값에 대한 질문입니다
visited[turn % 2][nx] = visited[(turn + 1) % 2][x] + 1; 이렇게 해주는 부분이 있는데, 결과는 turn 을 출력하는게 조금 헷갈립니다실제로 확인해보니 turn 과 visited[turn%2][k]-1 이 서로 값이 다르기도 하구요혹시 이유를 알 수 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-I 질문 있습니다.
저의 처음 접근방식은 아래와 같았습니다.공간 복잡도를 줄여야 하기 때문에 2차원 배열로 모든 것을 나타낼 수는 없다.동생의 위치는 점화식으로 표현할 수 있다. Bro(t) = Bro(t - 1) + t 0에서 출발해도 1000초 뒤면 500500에 도착하므로 배열의 크기는 1000이면 충분하다.수빈이가 특정 좌표에 도착한 시간을 기록해두고, 이 시간을 이용해 동생의 위치와 비교한다면 찾아낼 수 있지 않을까?그러나 이는 틀렸고, 강사님의 강의를 보고 수빈이가 먼저 도착한 경우를 빼먹었다는 걸 알았습니다. 그리고 이를 보완해 아래와 같은 코드를 작성하였습니다.http://boj.kr/9ca6697bc05c4e72b0e9a7cf5ef1a703하지만 여전히 틀렸더군요. 강사님의 강의를 마저 보고 풀긴 했습니다만, 제가 위 코드에서 빼먹은 부분이 무엇인지 감이 잡히지 않아 질문 드립니다. 🙏