acmicpc28 [JAVA] 2206 벽 부수고 이동하기 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 접근방법 1. 기본적으로 최단거리 찾기 문제라 바로 BFS가 떠올랐다. 2. BFS 돌릴때 모든 맵의 벽을 모두 한번씩 지워보며 가면 정답이 나오겠네 시간초과 (맞왜틀?) 3. 그럼 가는길에 부술수있으면 부수고 아니면 그냥 갈길 가면서 BFS 타보자 시간초과,메모리 (맞왜틀?) 4. 갈때 부순경우 안부순경우 모두 체크해서 큐에 넣자 (이게맞네?) 느낀점 고정관념을 버려야 .. 2022. 3. 24. [JAVA] 2805 나무 자르기 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 클래스 2 달성 2일차 왜인지 모르겠지만 2가 달성이 돼있었다. 2++문제까지 모두풀어야 한다고 생각했는데 클래스 2 문제 필수문제만 풀면 인정을 해주는 모양이다. 그래서 2++ 문제까지 모두 푸는것으로 목표를 변경하기로 했다. 접근방식 1. 처음 문제를 풀고 읽고 이분탐색인지 눈치 채지못했다. 그래서 나무의 높이가 12 8 15 20 이렇게 4가지라면 톱날.. 2022. 3. 23. [JAVA] 백준 10773 제로 https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net https://solved.ac/search?query=in_class:2 클래스 2 문제집 모음 solved.ac - 검색 solved.ac 백준 클래스 2++ 도전기 매번 추천 문제나 골드문제를 골라서 풀었는데 solved.ac 사이트를 구경하다가 클래스를 발견해서 단계를 올려보고자 하루 한번 클래스2 문제를 포스팅하기로 결정했습니다 ^^; 달성할때까지 달려보.. 2022. 3. 21. [Java] 백준 1300 K번째 수 https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 접근방법 이분탐색이라고 생각을 바로 하지는 못했다. 처음에는 k번째 인덱스 i,j를 구해서 값을 바로 출력해주는 방식을 생각했다 하지만 A배열, B배열로 나뉘고 각 인덱스는 1부터 시작하고 B배열은 값을 정렬하기 때문에 바로 인덱스를 구한다는 생각은 틀린 생각이었다. 왜냐하면 이미 섞여있는상태에서 인덱스를 구한다는것은 말이 되지 않기 때문이다. 두 번째 방법으로는 n.. 2022. 3. 19. 이전 1 2 3 다음