묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-Y 원판 돌리기
http://boj.kr/f8db50bd4ee848db99f4e157879c03d1테스트 케이스는 맞고 출력해봤을 때 해당 예제처럼 인접 값 삭제되는게 확인되는데 왜 틀렸는지 모르겠습니다.. 저는 vector<int> vec[54]로 1번부터 n까지 값을 저장한 후, 벡터를 rotate했습니다..
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
(공부 방법 관련) 모르겠으면 답을 보고 풀어도 되는걸까요ㅠㅠ
안녕하세요! 선생님 강의 잘 듣고있습니다 ㅎㅎ다름이 아니라,, 공부 방법에 대해 궁금한 점이 있어서요. 2주차까지는 제시해주신 문제 문제 대부분이 실버라서 답을 안 보고 풀고, 선생님 강의 보면서 더 나은 답을 배워가는 식으로 공부해왔는데,, 3주차 브루트포스부터는 골드가 대부분이라 자꾸 답에 도달하지 못하고 결국 강의 코드를 참고하게 됩니다ㅠㅠ (제가 아직 골드를 안 보고 풀 수 있는 실력이 아닌 것 같아요..)당연히 몇 시간 동안 저 스스로 풀려고 노력하는데, 늘 테케는 맞추더라도 히든테케를 틀리고ㅠㅠ 테케가 맞았으니까 어느정도 답에 근접하긴 했다고 생각했는데 막상 큰돌쌤 답을 보면 저랑 다르게 짧고 깔끔하게 구조화하셨더라구요. ㅠㅠ 예를 들면, 인구이동(boj 16234) 문제에서 인접 컴포넌트니까 dfs써야지! 하고 와다다닥 dfs를 써서 코드를 짜긴 짜는데 주어진 조건이 많아지니까 혼란스러워하면서 배열도 많이 만들고 flag도 많이 만들어서 덕지덕지 코드를 짜다가 포기하고 답을 보는.. 이런식이 반복됩니다.. 다음날 다시 풀어봐도 전날 푼걸 외워서 푸는 것 같고 제가 다른 문제가 나왔을 때 풀 수 있을거라는 자신이 안 들어요 이렇게 스스로 풀지 못 하는 문제가 거의 대부분이라도 이런식으로 계속 답을 보면서 공부하는게 맞는걸까요? 쌤 답을 보면서 공부를 해도 제 스스로 문제푸는 힘이 길러질까요?ㅠ.ㅠ 한탄 읽어주셔서 감사합니다..
-
미해결김영한의 실전 자바 - 중급 2편
섹션 10. Collections
Map<String, Integer> map = Map.of("a", 1, "b", 2, "c", 3, "ab", 4); 실행 결과 1번째 map = {a=1, b=2, c=3, ab=4} 2번째 map = {b=2, a=1, ab=4, c=3} 3번째 map = {ab=4, c=3, b=2, a=1} 4번째 map = {b=2, c=3, ab=4, a=1} 5번째 map = {b=2, a=1, ab=4, c=3}Map은 순서를 보장하지 않고, 중복을 허용하지 않습니다. HashMap에서는 key값을 가지고 hashCode를 구하고 hashIndex에 값을 보관하기에 입력한 순서대로 저장하는 것을 보장할 수 없습니다.그런데 map.of()로 생성을 했을 때는, 그 순서가 실행 할 때마다 달라져있습니다. 랜덤으로 돌린 것처럼...왜 매번 입력되는 값의 순서가 달라지는 건가요ㅠㅠ
-
해결됨김영한의 실전 자바 - 중급 2편
섹션 10. Comparable
public class MyUser implements Comparable<MyUser> { private String id; private int age; public MyUser(String id, int age) { this.id = id; this.age = age; } public String getId() { return id; } public int getAge() { return age; } @Override public int compareTo(MyUser o) { return this.age < o.age ? -1 : (this.age == o.age) ? 0 : 1; }MyUser의 멤버 변수는 private인데 compareTo(MyUser o)에서 this.age는 본인의 값을 가져다 쓴다고 쳐도 o.age로 호출이 어떻게 가능한 건가요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
배열을 이용한 구현 풀이 질문드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 큰돌님! 항상 좋은 강의 감사합니다! 다름이 아니라 제가 이 문제를 풀 당시, 입력의 범위도 작고 풀이가 딱히 생각이 나지 않아 배열을 이용해 쌩구현을 했습니다. 하지만 N과 J의 범위가 커지면 제가 풀이한 방법으로는 시간복잡도가 커져서 틀리게 되겠죠?만약, M이 1이고, N, J가 1000만일 때 최악의 경우 사과가 양 끝 인덱스(1번과 1000만번)에만 떨어진다면 시간복잡도는 1000만 * 1000만이 될까요? 코드: http://boj.kr/047fdd5efd2c4f37968a1764f52f9a40
-
해결됨김영한의 실전 자바 - 중급 2편
섹션 2. 문제풀이 질문드립니다.
class Suttle<T extends BioUnit> 으로 상한이 정해져있고, 타입 매개변수로 받아서public class UnitPrinter { static <T extends Shuttle> void printV1(T t) { t.showInfo(); } static void printV2(Shuttle<?> t) { t.showInfo(); } } UnitPrinter를 구현할 때 직접 셔틀에 있는 메서드를 호출할 수 있기 때문에 위와 같은 코드로 구현했습니다.동작은 제대로 하지만, 혹시 문제점이 존재하는 코드인지, 실무에서 지양하는 코드 구현 방식인지 궁금해서 질문드립니다.감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-E 메모리제이션 질문 있습니다.
큰돌님 안녕하세요?해당문제 메모리제이션 질문 있어서 들고 왔습니다. 아래는 제가 짠 코드고, 전체적인 로직은 해설하고 같은데 mem 쪽이 좀 달라서 질문 들고 왔습니다.http://boj.kr/5fac53ce112b4d7a8781f7c8f21ea24a 저는 mem 쪽을 아래와 같이 처리했는데요,&ret = dp[F][H];(ret !=0) return ret; 큰돌님 해설에는 조금 다르게 되어 있는 것 같아서요if(dp[whole][not_whole]) return dp[whole][not_whole];&ret = dp[whole][not_whole]; Q1. 왜 해설에서(ret !=0) return ret;이거를 쓰지 않는건가요? Q2. 아래 두 코드는 사실상 의미가 같은건가요?&ret = dp[F][H];(ret !=0) return ret;if(dp[whole][not_whole]) return dp[whole][not_whole];&ret = dp[whole][not_whole]; Q3. 강의 1분 54에서도 "dp가 있으면 그냥 dp를 반환한다"고 설명해주셨는데 위 질문과 관련이 있을까요?"dp가 있으면 그냥 dp를 반환한다"는 말도 이해가 어려워서 추가로 설명 받을 수 있을까요? 답변 미리 감사합니다.수강자 올림
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-H 반례
안녕하세요! 숨바꼭질 문제를 풀다가 trace 배열을 만드는 것 말고, visited의 값 만을 이용해 문제를 풀 수 있을 것 같아서 다음과 같이 코드를 작성했습니다.http://boj.kr/ef5e639dacc44c76a86baa28a9d967b8visited값에 대한 map을 만들어 값을 역추적 해 나갔습니다! 근데 48% 쯤에서 틀렸다고 나오네요,,, 백준 질문게시판에 적힌 반례들을 모두 넣어봐도 적절한 반례를 못찾겠습니다ㅠㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-V 바텀업 질문
선생님 안녕하세요! 저는 한번 바텀업 형식으로 풀어봤는데요,http://boj.kr/c788996f4fab486191d7c17ca93ff668테스트케이스는 다 맞는데 틀렸다고 나오네요 ㅜ우선 2개의 dp배열을 만들어서 자전거와 도보, 같은 index일 때 두가지 옵션이 서로 더해지지 않게, 즉 겹치지 않게한 것이 저의 의도입니다.어디서 틀렸을지 잘 감이 안오는데 ㅜㅜ 한번 봐주시면 감사하겠습니다 🙇♀
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-O. 모듈러 연산 질문
모듈러 연산은 분배법칙이랑 비슷한 것 같은데, 유사한 것이라고 알고있어도 될까요?또한, 이제까지는 cin, cout을 쓰시다가 왜 이 문제에서는 scanf, printf를 쓰셨는지 궁금합니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 주몽 문제 재귀를 이용한 조합으로 푸는 방법
모범 답안을 확인할 수 있을까요? 저도 풀 때 선생님이 푸신 것 처럼 이중 포문을 이용해서 했었는데, 재귀를 이용해서 푸는 방법도 궁금합니다.또한, r이 3 이하일 경우 무조건 이중 for문으로 돌리는게 시간복잡도가 재귀보다 낮게 나오나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1 - N 짊
http://boj.kr/84fc8018313e4742bc5b749cee39e0f9선생님 제가 코드를 짜보았는데 틀립니다가 계속 나옵니다. 혹시 어느부분이 문제인지 알려주실 수 있나요?
-
해결됨김영한의 실전 자바 - 중급 2편
섹션 9. 문제와 풀이1
public static void main(String[] args) { String text = "Orange banana apple apple banana apple"; //코드 작성 String[] textArr = text.split(" "); System.out.println(Arrays.toString(textArr)); Map<String, Object> map = new HashMap<>(); for (String string : textArr) { map.put(string, 0); } for (String key : textArr) { if (map.containsKey(key)) { map.put(key, (map.get(key) + 1)); } } System.out.println(map); }문제와 풀이1에 3번째 문제입니다!Map<String, Object> map = new HashMap<>();HashMap을 생성 할 때, 값을 받는 부분은 뭐가 들어갈 지 몰라서 Object를 넣었습니다.코드를 진행하면서 for (String key : textArr) { if (map.containsKey(key)) { map.put(key, (map.get(key) + 1)); } }의문이 생긴 건 이 부분입니다.map.put(key, (map.get(key) + 1));여기서 오류, 빨간줄이 나왔습니다.-> 오류: java: bad operand types for binary operator '+'first type: java.lang.Objectsecond type: int map을 생성할 때, key는 String으로 받고,value는 Object로 받는다고 선언했는데 왜 오류가 뜨는 건가요?map.get(key) + 1은 int타입으로 나오는데 오토박싱으로 Integer 타입으로 변환되고, Object에 들어갈 수 있지 않나요?오토박싱이 안 되는 건가 해서 Integer.valueOf()를 써봐도 안 되더라구요..ㅠㅠ 물론 선언하는 부분에서 Object를 Integer로 바꾸면 해결이 되기는 합니다만..왜 오류가 나는지 모르겠습니다ㅠㅠ
-
해결됨코딩테스트 [ ALL IN ONE ]
스택 안에 왜 -1과 1이 들어가는지 궁금합니다.
안녕하세요 코딩 테스트를 공부하고 있는데 이해가 안 되는 부분이 있어 글을 올립니다.5행에 있는[-1]이 cur_day를 가리키고[1]이 cur_temp를 가리키는 걸로 이해를 하고 있습니다.궁금한 점: 제가 이해한 부분이 맞는다면 왜 스택 부분에 -1과 1이 들어가는지 궁금합니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
5-4. 후위식 연산 괄호 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 잘 듣고 있습니다!혹시 풀이해주신 코드에서 괄호는 고려하지 않는 이유가 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-J 코드 질문입니다.
안녕하세요 강사님! 강의 너무 잘 듣고 있습니다!제가 짠 코드랑 강사님 코드랑 좀 다르지만 답은 맞다고 뜨는데, 이렇게 풀이해도 큰 문제 없는지 여쭤보고 싶어서 코드 올려봅니다.http://boj.kr/5a5e290d48434a57a34847c066b4de7b
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
답은 맞았는데, 이상한 부분이 있어서 질문드려요
http://boj.kr/a12c58c1df11493f8ba78847feffa3b9 선생님, 안녕하세요~완전탐색(재귀방식)으로 해서 어떻게 답을 맞췄습니다.처음에는 dp테이블에 동전이 n개일때 경우의 수를 저장해야겠다고 생각하고 코드를 짜보았지만, 뭔가 잘 되지않아dp[34][34] 이런식으로 남은 w가 n개, h가 m개일때 경우의 수를 저장하게 하는 방식으로 해서 통과하였습니다.그런데 이상한 점은, 한번 dp방식으로 해서 답을 맞췄으면, 그 다음 입력때도 이전에 저장된 dp테이블에 있는 값을 그대로 이용해서 답을 맞출 수 있을 줄 알았는데,이전에 저장된 dp테이블을 이용하면 다른 답이 나와서, 입력을 할 때마다 dp테이블을 초기화 해주는 방식을 사용하고 있습니다.음,, 어떤 부분때문에 이렇게 나오는 걸까요??
-
미해결김영한의 실전 자바 - 중급 2편
9강 map과 set && duque Peek()
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]9강을 들으면서 두가지의 궁금증이 생겼습니다. Hashset이 내부에서 Map을 이용한다고 하셨는데, hashSet은 콜렉션이고 map은 아닐 수 있는 지 궁금합니다. stack이랑 queue를 둘 다 deque를 사용하여 구현한다고 하셨는데 이때 peek() 함수의 결과가 똑같은 deque를 사용해도 다른 걸 확인 했습니다. 이게 어떨 때는 stack 구조인지 어떨 때는 queue 구조인지 어떻게 알고 peek()을 해주는 건가요?입력 할 때 offer와 push를 사용하는 것에 대한 차이를 인지하고 다르게 출력하는 걸까요?
-
해결됨김영한의 실전 자바 - 중급 2편
섹션 8。map1
Map<String, Integer> studentMap = new HashMap<>(); . . . Collection<Integer> values = studentMap.values();studentMap.values()를 하면 Collection타입으로 반환해준다고 하셨는데 의문이 하나 들었습니다.Collection은 인터페이스, map은 Collection을 상속받지 않음으로 Collection은 studentMap.values()를 담을 수 없지어야 한다고 생각했는데... 모르겠습니다ㅠㅠ
-
해결됨김영한의 실전 자바 - 중급 2편
섹션 7 . 문제와 퓨리1
Set<Integer> set = new TreeSet<>(List.of(30, 20, 20, 10, 10));set에 값을 넣을 때, List는 전달 할 수 있다고 하셨는데,List.of();를 사용하면 ()안에 값을 List에 넣는 거고,List의 타입은 Set<Integer>를 보고 Integer로 타입추론을 하게되고,List<Integer>이기 때문에 ()안에 들어간 int형 (30, 20, 20, 10, 10)은 오토박싱이 돼서int -> Integer 타입으로 변경되서 List에 들어간다.제가 이해한 게 맞나요??ㅠㅠ