에라토스테네스의 체 알고리즘을 알고 있어야 해결할 수 있는 문제였다. 이 알고리즘만 확실하게 알면 어렵지 않게 풀 수 있다. 난 이 알고리즘을 몰랐기 때문에 시간 초과로 틀렸다. 알고리즘에 대한 자세한 설명은 여기 글에 적어놨다. https://byungil.tistory.com/197 에라토스테네스의 체 알고리즘 - 소수 구하기 알고리즘 우리는 에라토스테네스의 체(Sieve of Eratosthenes)라는 방법을 통해 보다 쉽게 소수를 찾아낼 수 있습니다. 이름 그대로 체를 통해 무언가를 걸러내듯이 소수를 찾는 방법입니다. 일반적으로 소수만 byungil.tistory.com = 접근 방법 ( 틀린 이유 ) = 내가 처음 접근한 소수 찾는 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 1..
= 내가 접근한 방법 ( 틀림 ) = dfs라는 함수 안에서 다시 dfs(y - 1, x) dfs(y + 1, x) dfs(y, x - 1) dfs(y, x + 1) 이런 식으로 함수를 구성했다. 근데 이렇게 했을 때 문제점이 뭐냐면 방문 여부를 체크는 할 수 있어도 지렁이의 개수를 만족시키지 못했다. 그러니까, 처음 배추가 (0, 0) 을 들어간다고 가정하고 배추가 있으면 result++, 그리고 인접해있는 배추들을 다 방문처리를 해서 맨 처음 for문에서 다시 방문을 못하게 만들어야 한다는 것이다. 이러한 조건을 만족하려면 내가 맨 처음 구성했던 dfs(y - 1, x) dfs(y + 1, x) dfs(y, x - 1) dfs(y, x + 1) 이런 식으로는 해결 할 수 없었다. = 해결한 방법 = ..
JDK11을 사용 중이면 2.7.7 버전을 사용해야 된다. 3.0.1은 JDK17부터 지원을 하기 때문이다 1. Git Repository를 먼저 생성한다. 2. (cmd를 이용해서) 내가 원하는 경로에 이 명령어를 입력하면 된다. git clone https://github.com/{본인_아이디}/{저장소 아이디}.git 본인 아이디는 나의 Git 아이디를 입력하면 된다. 저장소 아이디는 내가 만든 Repository 아이디를 입력하면 된다. 3. 이렇게 파일이 생성됨을 확인할 수 있다. 4. 내가 만든 프로젝트 파일을 이 폴더에 그대로 넣어주면 된다. 5. 인텔리제이 open을 이용해 build.gradle을 연다. 6. 인텔리제이 내부 Terminal을 이용해서 이 정보를 Git Repository..
자세한 풀이 https://byungil.tistory.com/186 백준 - 집합과 맵 10816번 숫자 카드2 / 이분 탐색을 활용 ( 중복값 ) = 내가 접근한 방법 = 숫자 카드1 문제랑 똑같이 접근했다. Map을 이용해서 Map의 메서드 getOrDefault를 활용하는 방식으로 해결했는데 이 문제도 이분 탐색을 이용해서 풀어야 되는 문제였다. 지난 byungil.tistory.com = 접근 방법 = 1. 단순 for문을 이용하면 시간 초과, 따라서 이분 탐색 알고리즘을 활용해서 시간 복잡도 O(logN)로 풀자. 2. 중복값이 허용되는 문제이기 때문에 내가 찾는 숫자의 최소 index와 최대 index를 구해서 개수를 확인하자. 예를 들면, 1 1 2 2 5 => index: 0 1 2 3 ..
이 문제를 풀기 전에 DFS와 BFS에 대한 내용을 보고 푸는 것을 추천한다. https://byungil.tistory.com/203 백준 - 그래프와 순회 1260 DFS와 BFS문제 / 문제풀이, 해설 링크 https://www.youtube.com/watch?v=d3R1s_OmwAk DFS와 BFS에 대한 해설은 이 영상을 참조하는게 좋을 것 같다. 나도 접근 방법을 아예 몰랐기 때문에 이 영상으로 공부했다. DFS는 깊이 우선, BFS 너비 우선 DFS는 한 byungil.tistory.com 1260, DFS와 BFS문제와 똑같은 문제다. 이전에 문제를 완벽하게 이해했기 때문에 이렇게 간단한 문제는 어려움 없이 해결할 수 있었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15..